Una vulnerabilitat en el nucli permet escalar privilegis mitjançant la manipulació de directoris

systemd vulnerabilitat

fa poc investigadors de seguretat de Qualys (Una empresa de seguretat en el núvol, compliment i serveis relacionats) van donar a conèixer els detalls d'una vulnerabilitat que van detectar i que afecten el nucli de Linux.

CVE-2021-33909 afecta el nucli i permet que un usuari local aconsegueixi l'execució de codi i escalar privilegis mitjançant la manipulació de directoris molt imbricats.

La vulnerabilitat es deu a la falta de validació de l'resultat de convertir size_t a el tipus int abans de realitzar operacions en el codi seq_file, que crea arxius a partir d'una seqüència de registres. La manca de validació pot resultar en escriptures en una àrea fora dels límits de la memòria intermèdia a l'crear, muntar i eliminar una estructura de directori amb un nivell molt alt de nidificació (mida de ruta de més d'1 GB).

Qualsevol usuari sense privilegis pot obtenir privilegis de root en un host vulnerable aprofitant aquesta vulnerabilitat en una configuració predeterminada.

Com a resultat, un atacant pot obtenir una cadena de 10 bytes «// deleted» amb un desplaçament de «- 2 GB - 10 bytes», que apunta a l'àrea immediatament anterior a la memòria intermèdia assignat.

L'amenaça de la vulnerabilitat es veu agreujada pel fet que els investigadors van poder preparar gestes funcionals en Ubuntu 20.04, Debian 11 i Fedora 34 en la configuració per defecte. S'observa que no s'han provat altres distribucions, però teòricament també són susceptibles a el problema i poden ser atacades.

L'explotació reeixida d'aquesta vulnerabilitat permet que qualsevol usuari sense privilegis obtingui privilegis de root al host vulnerable. Els investigadors de seguretat de Qualys han pogut verificar de forma independent la vulnerabilitat, desenvolupar un exploit i obtenir privilegis de root complets en instal·lacions predeterminades d'Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04, Debian 11 i Fedora 34 Workstation. És probable que altres distribucions de Linux siguin vulnerables i probablement explotables.

El treball de l'exploit es redueix a crear una jerarquia d'aproximadament un milió de directoris niats a través de l'anomenada mkdir () per aconseguir una mida de ruta d'arxiu superior a 1 GB.

Aquest directori es munta mitjançant bind-mount en un espai de noms d'usuari separat, després de la qual cosa s'executa la funció rmdir () per eliminar-lo. Paral·lelament, es crea un fil que carrega un petit programa eBPF, que es bloqueja en l'etapa després de verificar el pseudocodi eBPF, però abans de la seva compilació JIT.

A l'espai de noms de ID d'usuari sense privilegis, l'arxiu / proc / self / mountinfo s'obre i llegeix la ruta de directori llarga muntada amb bind-mount, el que dóna com a resultat que la línia «// deleted» s'escrigui a la regió abans de l'inici de la memòria intermèdia. La posició per escriure la línia es tria de tal manera que sobreescriure la instrucció al programa eBPF ja provat però encara no compilat.

A més, en el nivell de el programa eBPF, l'escriptura incontrolada fora de la memòria intermèdia es transforma en una capacitat de lectura / escriptura controlada en altres estructures de l'nucli mitjançant la manipulació de les estructures BTF i map_push_elem.

L'exploit després situa la memòria intermèdia modprobe_path [] en la memòria de l'nucli i sobreescriu la ruta «/ sbin / modprobe» a ell, el que permet que qualsevol arxiu executable sigui llançat com a root si es realitza una trucada request_module (), que s'executa , per exemple, a l'crear un sòcol Netlink ...

Els investigadors han proporcionat diverses solucions que són efectives només per a un exploit específic, però no solucionen el problema en si.

Com a tal el que es recomana és establir el paràmetre «/ proc / sys / kernel / unprivileged_userns_clone» a 0 per desactivar el muntatge de directoris en un espai de noms de ID d'usuari separat i «/ proc sys / kernel / unprivileged_bpf_disabled» en 1 per desactivar la càrrega de programes eBPF en el nucli.

A més de que també es recomana a tots els usuaris d'una distribució de Linux, realitzar l'actualització del seu sistema per tenir el pegat corresponent. El problema ha estat evident des de juliol de 2014 i afecta les versions de l'nucli des 3.16. El pegat de vulnerabilitat es va coordinar amb la comunitat i es va acceptar en el nucli el 19 de juliol.

Finalment, si estàs interessat en conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.