Dynaaminen kuormaaja , joka on osa OpenBSD:tä, voi tietyin ehdoin - sovellukset jättävät LD_LIBRARY_PATH-ympäristömuuttujan pois, jolloin kolmannen osapuolen koodia voidaan ladata prosessin aikana, jossa on laajennetut käyttöoikeudet. Haavoittuvuuden korjaavia päivityksiä on saatavilla julkaisuihin. и Binäärikorjaukset () amd64-, i386- ja arm64-alustoille on jo otettu tuotantoon ja niiden pitäisi olla ladattavissa tämän uutisen julkaisuhetkellä.
Ongelmana on, että ld.so hakee ensin LD_LIBRARY_PATH-muuttujan ympäristöstä ja muuntaa sen _dl_split_path()-funktion avulla merkkijonotaulukoksi – hakemistopoluiksi. Jos myöhemmin käy ilmi, että nykyinen prosessi on käynnistetty SUID/SGID-sovelluksella, luotu taulukko ja itse LD_LIBRARY_PATH-muuttuja tyhjennetään. Lisäksi, jos _dl_split_path() havaitsee muistin loppumisen (mikä on vaikeaa ympäristömuuttujien kokorajoituksen vuoksi, joka on 256 kt, mutta teoriassa mahdollista), _dl_libpath-muuttuja asetetaan arvoon NULL, ja muuttujan arvon myöhemmät tarkistukset ohittavat _dl_unsetenv("LD_LIBRARY_PATH")-kutsu.
Haavoittuvuuden löysivät asiantuntijat. , aivan kuten Haavoittuvuuden tunnistaneet tietoturvatutkijat panivat merkille ongelman ratkaisun nopeuden: korjaustiedosto valmisteltiin ja päivitykset julkaistiin kolmen tunnin kuluessa siitä, kun OpenBSD-projekti sai ilmoituksen.
Lisäys: Ongelmalle on annettu numero Oss-security-postituslistaa on päivitetty. , joka sisältää prototyyppihaavoittuvuuden hyödyntämisen, joka toimii OpenBSD 6.6-, 6.5-, 6.2- ja 6.1-arkkitehtuureilla.
amd64 ja i386 (hyödyntämistoimintoa voidaan soveltaa muille arkkitehtuureille).
Haavoittuvuutta voidaan hyödyntää oletusasennuksessa, ja se sallii etuoikeudettoman paikallisen käyttäjän suorittaa koodia pääkäyttäjän oikeuksilla kirjaston korvautumisen kautta suoritettaessa suid-apuohjelmia chpass tai passwd. RLIMIT_DATA-raja asetetaan setrlimit-komennolla, jotta muistin käyttö olisi mahdollisimman vähäistä.
Lähde: opennet.ru
