Kwetsbaarheid in ld.so OpenBSD

Dynamische loader ld.so, die deel uitmaken van OpenBSD, kan onder bepaalde voorwaarden SUID/SGID-toepassingen de omgevingsvariabele LD_LIBRARY_PATH behouden en zo de belasting van externe code in de context van een proces met verhoogde privileges mogelijk maken. Patches ter oplossing van de kwetsbaarheid zijn beschikbaar voor de releases 6.5 en 6.6. Binaire patches (syspatch) voor de platforms amd64, i386 en arm64 zijn al in productie en zouden beschikbaar moeten zijn voor download op het moment van publicatie van dit nieuws.

De kern van het probleem: tijdens de werking van ld.so haalt het eerst de waarde van de omgevingsvariabele LD_LIBRARY_PATH op, en met de functie _dl_split_path() verandert het deze in een array van strings - paden naar mappen. Als later blijkt dat het huidige proces is gestart als een SUID/SGID-toepassing, wordt de gemaakte array en de omgevingsvariabele LD_LIBRARY_PATH gewist. Als tijdens de werking van _dl_split_path() er een geheugen tekort is (wat moeilijk is door de expliciete beperking van de grootte van omgevingsvariabelen tot 256 kilobyte, maar theoretisch mogelijk), zal de variabele _dl_libpath de waarde NULL krijgen, en de daaropvolgende controle van deze variabele zal ervoor zorgen dat de aanroep van _dl_unsetenv("LD_LIBRARY_PATH") wordt overgeslagen.

De kwetsbaarheid is gevonden door specialisten Qualys, net als enkele eerder ontdekte problemen. De onderzoekers die de kwetsbaarheid hebben ontdekt, hebben de snelheid van de oplossing opgemerkt: de patch werd voorbereid en updates werden binnen drie uur na kennisgeving door het OpenBSD-project vrijgegeven.

Aanvulling: Het probleem heeft het nummer CVE-2019-19726. In de mailinglijst oss-security is een officiƫle aankondiging, inclusief een exploit-prototype dat werkt in OpenBSD 6.6, 6.5, 6.2 en 6.1 op de architecturen
amd64 en i386 (de exploit kan ook worden aangepast voor andere architecturen).
Het probleem is exploiteerbaar in de standaardinstallatie en stelt een niet-geprivilegieerde lokale gebruiker in staat om code met root-rechten uit te voeren door het vervangen van een bibliotheek bij het starten van de suid-hulpmiddelen chpass of passwd. Voor het creƫren van de noodzakelijke voorwaarden voor exploitatie wordt een geheugenlimiet ingesteld via setrlimit.

Bron: opennet.ru

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