Una vulnerabilitat de fa mes de 15 anys en Netfilter permetia escalar privilegis

Fa pocs dies es va donar a conèixer la notícia que s'ha identificat una vulnerabilitat en Netfilter (Un subsistema de el nucli de Linux utilitzat per filtrar i modificar paquets de xarxa), que permet a un usuari local obtenir privilegis de root en un sistema, Fins i tot mentre es troba en un contenidor aïllat.

La vulnerabilitat CVE-2021-22555 és un problema que ha estat present des del nucli 2.6.19, Llançat fa 15 anys i és causat per un error en els controladors IPT_SO_SET_REPLACE i IP6T_SO_SET_REPLACE, el que provoca un desbordament de la memòria intermèdia a l'enviar paràmetres especialment decorats a través de l'anomenada setsockopt en mode compat.

Potser molts en aquest punt es preguntessin com és possible que una fallada en el nucli de Linux va poder passar desapercebut durant tant de temps i la resposta a això és que tot i que la decisió que va estar present des de Linux 2.6.19, la vulnerabilitat si va trobar mitjançant auditoria de codi, tot i que el codi C no era reproduïble, per la qual cosa no va poder ser explotat pel fet que els recursos necessaris per poder escalar els privilegis no es trobaven en aquest llavors.

Per exemple el suport per a espais de noms d'usuaris sense privilegis, està en el nucli 3.8. A més de que algunes distribucions tenen un pegat que afegeix sysctl per desactivar els espais de noms d'usuaris sense privilegis.

En circumstàncies normals, només l'usuari root pot trucar a compat_setsockopt (), però els permisos necessaris per realitzar un atac també poden ser obtinguts per un usuari sense privilegis en sistemes amb espais de noms d'usuari habilitats.

CVE-2021-22555 és una vulnerabilitat d'escriptura fora de límits de pila de 15 anys en Linux Netfilter que és prou potent com per evitar totes les mitigacions de seguretat modernes i aconseguir l'execució de el codi de l'nucli.

Com a tal, es descriu que un usuari local pot crear un contenidor amb un usuari root independent i aprofitar la vulnerabilitat des allí. Per exemple, els «espais de noms d'usuari» s'inclouen per defecte en Ubuntu i Fedora, però no en Debian i RHEL.

Aquesta vulnerabilitat es pot aprofitar sobreescrivint parcialment el m_list->nextpunter de la msg_msgestructura i aconseguint un ús després de lliure. Això és prou poderós com per obtenir l'execució de el codi de l'nucli sense passar per KASLR, SMAP i SMEP.

A més, el problema sorgeix en la funció xt_compat_target_from_user () a causa d'un càlcul incorrecte de la mida de la memòria a l'desar les estructures de l'nucli després de la conversió de la representació de 32 bits a la de 64 bits.

Com a tal, s'esmenta que l'error permet escriure quatre octets «zero» en qualsevol posició fora de la memòria intermèdia assignat, limitat pel desplaçament 0x4C. A causa d'això, s'esmenta que aquesta característica va resultar ser suficient per crear un exploit que permet obtenir drets de root: a l'esborrar el punter m_list-> next en l'estructura msg_msg, es van crear les condicions per accedir a les dades després d'alliberar memòria (use-after-free), que després va ser s'utilitza per obtenir informació sobre adreces i canvis en altres estructures mitjançant la manipulació de la crida a sistema msgsnd ().

Pel que fa a l'informe de l'error, a l'igual que qualsevol vulnerabilitat detectada, això porta un procés i l'informe que es va realitzar als desenvolupadors de el nucli a l'abril, amb la qual cosa posterior a això es va corregir en uns dies i es va llançar el pegat que està inclòs en totes les distribucions compatibles, per després poder divulgar la informació sobre la decisió.

Els projectes Debian, Arch Linux i Fedora ja han generat actualitzacions de paquets. A partir d'Ubuntu, s'estan preparant les actualitzacions de RHEL i SUSE. A causa de que l'error és greu, explotable en la pràctica i permet escapar de l'contenidor, Google va estimar el seu descobriment a $ 10,000 i doblego la recompensa a l'investigador que va identificar la vulnerabilitat i per identificar un mètode per evitar l'aïllament dels contenidors de Kubernetes al clúster kCTF.

Per a les proves, s'ha preparat un prototip funcional d'un exploit que eludeix els mecanismes de protecció KASLR, SMAP i SMEP.

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ó.