Vulnerabilitate în implementarea socket-urilor AF_PACKET din kernel-ul Linux

După trei ani de la valul de vulnerabilități (1, 2, 3, 4, 5) din subsistemul AF_PACKET al nucleului Linux a fost identificată o altă problemă (CVE-2020-14386), care permite unui utilizator local fără privilegii să execute cod cu drepturi de root sau să iasă din containerele izolate, având acces root în acestea.

Pentru a crea un socket AF_PACKET și a exploata vulnerabilitatea, este necesară obținerea privilegiului CAP_NET_RAW. Cu toate acestea, acest privilegiu poate fi obținut de utilizatorii fără privilegii în containerele create în sisteme cu suport activat pentru spațiile de nume ale utilizatorilor (user namespaces). De exemplu, user namespaces este activat în mod implicit în Ubuntu și Fedora, dar nu este activat în Debian și RHEL. În Android, dreptul de a crea sockets AF_PACKET este deținut de procesul mediaserver, prin care vulnerabilitatea poate fi exploatată.

Vulnerabilitatea există în funcția tpacket_rcv și este cauzată de o eroare de calcul a variabilei netoff. Atacatorul poate crea condiții în care în variabila netoff se va scrie o valoare mai mică decât variabila maclen, ceea ce va provoca un overflow în timpul calculării „macoff = netoff - maclen” și o stabilire incorectă ulterioară a pointerului către bufferul pentru datele primite. Ca rezultat, atacatorii pot iniția o scriere de la 1 la 10 byte în zona din afara bufferului alocat. Se notează că este în dezvoltare un exploit care permite obținerea privilegiilor root în sistem.

Problema este prezentă în nucleul din iulie 2008, adică se manifestă în toate nucleele actuale. Corecția este disponibilă deocamdată sub formă de patch. Actualizările pachetelor în distribuții pot fi urmărite pe următoarele pagini: Ubuntu, Fedora, SUSE, Debian, RHEL, Arch.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster