CVE-2023-4911 Looney Tunables

CVE-2023-4911 Looney Tunables

Celia Catalán


L'any 2023, l'equip de Qualys va reportar una vulnerabilitat amb una alta criticitat que afectava una gran quantitat de versions de Linux. Aquesta consistia en una escalada de privilegis locals en aprofitar el desbordament del memòria intermèdia al carregador dinàmic de la biblioteca GNU C (glibc). 

El carregador dinàmic en processar la variable d'entorn GLIBC_TUNABLES produeix aquest desbordament, i un agent maliciós podria utilitzar aquesta variable per iniciar fitxers binaris amb permisos de SUID, cosa que us permetria executar codi amb privilegis elevats. 

Per replicar aquesta vulnerabilitat es va implementar un entorn de proves. En primer lloc, cal accedir a la màquina vulnerable: 

Zerolynx: conexión por SSH a la máquina vulnerable


Per fer lexplotació shan dentendre el POC que es proporciona. 

El carregador dinàmic utilitza les variables d'entorn gclib_tunables, que permeten que els desenvolupadors alterin dinàmicament el comportament de la biblioteca en temps d'execució. 

En aquest cas, el codi cerca qualsevol variable gclib_tunables a les variables d'entorn i les copia a una variable nova. La vulnerabilitat sorgeix quan la variable conté entrades inesperades, ja que no són manejades amb seguretat i provocant un desbordament del memòria intermèdia. 

Com a requisit d'explotació cal comptar amb: 

  • Execució de codi amb privilegis limitats a un sistema vulnerable. 

PoC


Després de comprovar que és vulnerable a Looney Tunables, amb l'ajuda del fitxer gen_libc.py, el qual en aquest cas ja es troba dins de la màquina, l'executem per generar l'exploit. 

Zerolynx: Uso del archivo Gen_Libc.py


El pas següent és compilar l'exploit utilitzant GCC. El fitxer que cal compilar és l'exp.c  

Zerolynx: malware ejecutable generado

Després de l'execució de les dues ordres s'hauran generat dos arxius, les POC necessàries per a l'explotació de la vulnerabilitat: 
  • Un executable: “exp” 
  • L'explotació: "lib.so.6" 

Zerolynx:. ejecución de malware

Després de l'execució de l'arxiu que contenia l'exploit, després d'un període de temps breu es pot observar com l'explotació s'ha completat i s'ha aconseguit fer l'escalada de privilegis amb èxit. 

Conclusió 

Aquesta vulnerabilitat a la biblioteca GNU C (glibc) subratlla la importància d‟una gestió segura de les variables d‟entorn en sistemes Linux. Per mitigar concretament aquesta vulnerabilitat cal actualitzar el paquet glibc a les noves versions disponibles en conjunt. Cal comprovar que els canvis s'han aplicat satisfactòriament.

Javier Muñoz , Analista de Ciberseguretat a Zerolynx
Jorge Ezequiel de Francisco , Analista de Ciberseguretat a Zerolynx .
Tornar al bloc

Deixa un comentari

Tingueu en compte que els comentaris s'han d'aprovar abans que es publiquin.