O vulnerabilitate în glibc, care permite obținerea accesului root în sistem

Compania Qualys a descoperit o vulnerabilitate periculoasă (CVE-2023-6246) în biblioteca standard C Glibc, care permite, prin manipularea execuției aplicațiilor SUID, executarea de cod cu privilegii ridicate. Cercetătorii au reușit să dezvolte un exploit funcțional care permite obținerea drepturilor root prin manipularea argumentelor liniei de comandă la pornirea utilitarului su.

Vulnerabilitatea este cauzată de o depășire a buffer-ului în funcția __vsyslog_internal(), utilizată la apelul funcțiilor syslog() și vsyslog(). Problema apare dintr-o eroare în încercarea de a produce o ieșire prin macro-ul SYSLOG_HEADER pentru un nume de aplicație prea lung. Atunci când se încearcă extinderea buffer-ului având în vedere numele lung, apare o eroare, după care datele sunt scrise în vechiul buffer de dimensiune inițială mai mică.

În organizarea unei atacuri prin utilitarul su, atacatorul poate schimba numele procesului în timpul pornirii aplicației prin înlocuirea valorii argv[0], care este utilizată pentru a obține informații despre numele programului la ieșirea în log, și poate obține o rescriere controlată a datelor dincolo de buffer-ul alocat. Ulterior, depășirea buffer-ului poate fi folosită pentru a rescrie structura nss_module din biblioteca nss pentru a crea o bibliotecă partajată și a o încărca cu drepturi root.

Problema apare începând cu versiunea glibc 2.37, publicată în august 2022, care include o modificare ce gestionează situația unei încercări de scriere a mesajelor prea mari. Corectarea vulnerabilității a fost backportată în ramura glibc 2.36 și în pachetele distribuțiilor cu versiuni mai vechi de glibc, deoarece corectarea menționată rezolvă vulnerabilitatea CVE-2022-39046, care duce la scurgeri de date din heap. A rezultat astfel că corectarea unei vulnerabilități nepericuloase a dus la apariția unei probleme critice. Este notabil că o vulnerabilitate similară în funcția vsyslog() din biblioteca libc 5.4.3 a fost raportată încă din 1997.

Vulnerabilitatea este confirmată în Debian 12/13, Ubuntu 23.04/23.10 și Fedora 37-39. Funcționarea exploit-ului pentru a obține drepturi de root de către un utilizator fără privilegii a fost demonstrată într-un mediu Fedora 38 complet actualizat, cu toate mecanismele de protecție activate în configurațiile implicite. Vulnerabilitatea poate fi exploatată doar local, deoarece necesită transmiterea a mai mult de 1024 de octeți prin parametrul argv[0] sau argumentul ident în funcția openlog().

Corectarea vulnerabilității a fost inclusă cu câteva ore în urmă în baza de cod Glibc și va face parte din actualizarea de mâine a Glibc 2.39, împreună cu corectarea altor două vulnerabilități (CVE-2023-6779, CVE-2023-6780), care afectează, de asemenea, codul __vsyslog_internal() și duc la overflow de buffer. În plus, compania Qualys a avertizat cu privire la descoperirea overflow-ului de buffer în implementarea funcției qsort(), care nu a fost considerată de dezvoltatorii Glibc ca o vulnerabilitate, deoarece exploatarea presupune utilizarea unei funcții de comparație atipice în apelul qsort care returnează diferența parametrilor comparați.

Starea remedierii vulnerabilităților în distribuțiile de software poate fi evaluată pe următoarele pagini: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Poți testa vulnerabilitatea sistemului folosind următoarea comandă: $ (exec -a «`printf ‘28000x’ 1`» /usr/bin/su < /dev/null)
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