Kwetsbaarheid in Glibc ld.so die rootrechten in het systeem kan verkrijgen

Qualys heeft een gevaarlijke kwetsbaarheid (CVE-2023-4911) ontdekt in de linker ld.so, geleverd als onderdeel van de systeem C-bibliotheek Glibc (GNU libc). De kwetsbaarheid stelt een lokale gebruiker in staat om zijn privileges in het systeem te verhogen door speciaal opgestelde gegevens in de omgevingsvariabele GLIBC_TUNABLES aan te geven voor het uitvoeren van een bestand met de suid root-vlag, bijvoorbeeld /usr/bin/su.

De mogelijkheid om de kwetsbaarheid met succes te exploiteren is aangetoond in Fedora 37 en 38, Ubuntu 22.04 en 23.04, Debian 12 en 13. Het wordt verondersteld dat de kwetsbaarheid ook voorkomt in andere distributies die Glibc gebruiken. Distributies die zijn gebaseerd op de systeem C-bibliotheek Musl, zoals Alpine Linux, zijn niet kwetsbaar voor dit probleem. De kwetsbaarheid is verholpen in een patch die op 2 oktober is toegevoegd. Updates voor pakketten in de distributies kunnen worden gevolgd op de pagina's van Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, Gentoo, ALT Linux.

De kwetsbaarheid is ontstaan door een wijziging die in april 2021 werd aangebracht en deel uitmaakte van de release van glibc 2.34. Door een fout in de code die de tekenreeks die in de omgevingsvariabele GLIBC_TUNABLES is aangegeven, ontleedt, leidt een onjuiste combinatie van parameters in deze variabele tot het schrijven van de ontlede waarde buiten de toegewezen buffer. Het probleem doet zich voor wanneer in plaats van de gebruikelijke reeksen "name=val", de parameters zijn opgegeven in de vorm van een dubbele toewijzing "name=name=val". In dit geval wordt de toewijzing twee keer verwerkt, eerst als "name=name=val" en vervolgens als "name=val". Door deze dubbele verwerking ontstaat het resultaat "name=name=val:name=val", waarvan de grootte de grootte van de tunestr-buffer overschrijdt.

Onderzoekers hebben een stabiele exploit ontwikkeld die root-rechten kan verkrijgen bij het gebruik van praktisch elk programma met de suid root-vlag. Uitzonderingen zijn het hulpprogramma sudo (verandert de ELF RUNPATH-waarde), de hulpprogramma's chage en passwd in Fedora (beschermd door specifieke SELinux-regels) en het hulpprogramma snap-confine in Ubuntu (beschermd door specifieke AppArmor-regels). De voorgestelde exploitatiemethode werkt ook niet in RHEL 8 en RHEL 9, hoewel deze versies kwetsbaar zijn (voor de aanval is een andere exploit vereist). De exploitcode zal later worden gepubliceerd nadat de kwetsbaarheid in het hele systeem is verholpen. U kunt de kwetsbaarheid van uw systeem controleren met de onderstaande opdracht, die bij een probleem zal falen: env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '192x' 1`" \/usr\/bin\/su —help

Daarnaast wordt de oplossing van nog twee kwetsbaarheden in Glibc opgemerkt:

  • CVE-2023-4806 — een use-after-free fout in de functie getaddrinfo(), die zich voordoet wanneer de NSS-plugin alleen call-back-aanroepen van "_gethostbyname2_r" en "_getcanonname_r" implementeert, maar de aanroep "_gethostbyname3_r" niet ondersteunt. Voor exploitatie van de kwetsbaarheid moet de DNS-server voor de gevraagde host een groot aantal IPv6- en IPv4-adressen retourneren, wat leidt tot een crash van het proces dat de functie getaddrinfo voor het adresfamilie AF_INET6 aanroept met de vlaggen AI_CANONNAME, AI_ALL en AI_V4MAPPED.
  • CVE-2023-5156 — geheugeninhoudslek bij het aanroepen van de functie getaddrinfo voor het adresfamilie AF_INET6 met de vlaggen AI_CANONNAME, AI_ALL en AI_V4MAPPED.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster