Vulnerabilità nell'implementazione del socket AF_PACKET del kernel Linux

Tre anni dopo l’ondata di vulnerabilità (1, 2, 3, 4, 5) nel sottosistema AF_PACKET del kernel Linux identificato ancora un problema (CVE-2020-14386), consentendo a un utente locale non privilegiato di eseguire codice come root o di uscire da contenitori isolati se dispone dell'accesso root.

La creazione di un socket AF_PACKET e lo sfruttamento della vulnerabilità richiedono i privilegi CAP_NET_RAW. Tuttavia, l'autorizzazione specificata può essere ottenuta da un utente senza privilegi in contenitori creati su sistemi con il supporto per gli spazi dei nomi utente abilitato. Ad esempio, gli spazi dei nomi utente sono abilitati per impostazione predefinita su Ubuntu e Fedora, ma non abilitati su Debian e RHEL. Su Android, il processo mediaserver ha il diritto di creare socket AF_PACKET, attraverso i quali è possibile sfruttare la vulnerabilità.

La vulnerabilità è presente nella funzione tpacket_rcv ed è causata da un errore nel calcolo della variabile netoff. Un utente malintenzionato può creare condizioni in cui la variabile netoff viene scritta su un valore inferiore alla variabile maclen, il che causerà un overflow durante il calcolo di "macoff = netoff - maclen" e successivamente l'impostazione errata del puntatore al buffer per i dati in entrata. Di conseguenza, un utente malintenzionato può iniziare a scrivere da 1 a 10 byte in un'area oltre il limite del buffer allocato. Si segnala che è in sviluppo un exploit che consente di ottenere i diritti di root nel sistema.

Il problema è presente nel kernel da luglio 2008, ovvero si manifesta in tutti i nuclei attuali. La correzione è attualmente disponibile come toppa. Puoi monitorare la disponibilità degli aggiornamenti dei pacchetti nelle distribuzioni nelle seguenti pagine: Ubuntu, Fedora, SUSE, Debian, RHEL, Arco.

Fonte: opennet.ru

Aggiungi un commento