Kwetsbaarheid in glibc die root-toegang tot het systeem mogelijk maakt

Het bedrijf Qualys heeft een kwetsbaarheid (CVE-2023-6246) ontdekt in de standaard C-bibliotheek Glibc, waardoor het mogelijk is om door manipulatie van SUID-toepassingen code met verhoogde privileges uit te voeren. Onderzoekers wisten een werkende exploit te ontwikkelen die rootrechten kan verkrijgen door manipulatie van de commandoregelargumenten bij het starten van de su-tool.

De kwetsbaarheid wordt veroorzaakt door een bufferoverflow in de functie __vsyslog_internal(), die wordt gebruikt bij het aanroepen van de functies syslog() en vsyslog(). Het probleem ontstaat door een fout bij het proberen weergeven van een te lange naam van de toepassing via de macro SYSLOG_HEADER. Bij het uitbreiden van de buffer rekening houdend met de lange naam, treedt een fout op, waarna gegevens worden geschreven naar de oude buffer van oorspronkelijke kleinere grootte.

Bij het uitvoeren van een aanval via de su-tool kan de aanvaller de procesnaam wijzigen tijdens het starten van de toepassing door de waarde van argv[0] te vervangen, die wordt gebruikt om informatie over de programmanaam weer te geven in de log, en zo gecontroleerde herschrijving van gegevens buiten de toegewezen buffer te bereiken. Deze overflow kan vervolgens worden gebruikt om de struct nss_module in de nss-bibliotheek te herschrijven, om een gedeelde bibliotheek te creƫren en deze met root-rechten te laden.

Het probleem doet zich voor vanaf de uitgave van glibc 2.37, die in augustus 2022 werd gepubliceerd en die een wijziging bevat die de situatie bij het proberen te schrijven van te grote berichten aanpakt. De kwetsbaarheid veroorzakende wijziging werd teruggeporteerd naar de glibc 2.36-tak en naar distributiepakketten met oudere versies van glibc, aangezien de genoemde wijziging de kwetsbaarheid CVE-2022-39046 verholpen had, die leidde tot geheugenlekken. Hierdoor resulteerde het oplossen van deze ongevaarlijke kwetsbaarheid in een kritische kwestie. Opmerkelijk is dat er al in 1997 melding werd gemaakt van een soortgelijke kwetsbaarheid in de functie vsyslog() in de libc-bibliotheek 5.4.3.

Bevestigde kwetsbaarheid in Debian 12/13, Ubuntu 23.04/23.10 en Fedora 37-39. De werking van de exploit om root-rechten te verkrijgen voor een niet-geprivilegieerde gebruiker is gedemonstreerd in een volledig bijgewerkte omgeving van Fedora 38 met alle standaardbeveiligingsmechanismen ingeschakeld. De kwetsbaarheid kan alleen lokaal worden uitgebuit, aangezien het meer dan 1024 bytes vereist via de parameter argv[0] of het argument ident in de functie openlog().

De fix voor de kwetsbaarheid is enkele uren geleden in de Glibc-codebase opgenomen en zal deel uitmaken van de Glibc 2.39-update van morgen, samen met de oplossing voor nog twee kwetsbaarheden (CVE-2023-6779, CVE-2023-6780), die ook betrekking hebben op de code van __vsyslog_internal() en leiden tot buffer overflow. Bovendien heeft het bedrijf Qualys gewaarschuwd voor de ontdekking van een buffer overflow in de implementatie van de functie qsort(), die door de ontwikkelaars van Glibc niet als een kwetsbaarheid is geclassificeerd, aangezien de exploit een ongebruikelijke vergelijkingsfunctie als argument voor de aanroep van qsort vereist, welke het verschil tussen de vergeleken parameters retourneert.

De status van het verhelpen van kwetsbaarheden in distributies kan worden beoordeeld op de volgende pagina's: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Je kunt de kwetsbaarheid van het systeem testen met de volgende opdracht: $ (exec -a "`printf ā€˜28000x’ 1`" /usr/bin/su < /dev/null)
Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster