Kwesbaarheid in ld.so OpenBSD

Dinamiese laaier ld.so, ingesluit by OpenBSD, kan onder sekere voorwaardes, SUID/SGID- toepassings verlaat die LD_LIBRARY_PATH omgewingsveranderlike en laat dus derdeparty-kode toe om te laai in die konteks van 'n proses wat met verhoogde voorregte loop. Regstellings wat die kwesbaarheid regstel, is beskikbaar vir vrystellings 6.5 и 6.6. Binêre kolle (syspatch) vir amd64, i386 en arm64 platforms is reeds in produksie en behoort beskikbaar te wees vir aflaai teen die tyd dat hierdie nuus gepubliseer word.

Die kern van die probleem: tydens operasie onttrek ld.so eers die waarde van die LD_LIBRARY_PATH-veranderlike uit die omgewing en, met behulp van die _dl_split_path()-funksie, verander dit in 'n verskeidenheid stringe - paaie na gidse. As dit later blyk dat die huidige proses deur 'n SUID/SGID-toepassing begin word, dan word die geskepde skikking en in werklikheid die LD_LIBRARY_PATH-veranderlike uitgevee. Terselfdertyd, as _dl_split_path() se geheue opraak (wat moeilik is as gevolg van die eksplisiete 256 kB limiet op die grootte van omgewingsveranderlikes, maar teoreties moontlik), dan sal die _dl_libpath veranderlike die waarde NULL ontvang, en daaropvolgende kontrole van die waarde van hierdie veranderlike sal dwing om die oproep na _dl_unsetenv("LD_LIBRARY_PATH") oor te slaan.

Kwesbaarheid gevind deur kundiges Qualy's, sowel as verskeie voorheen geopenbaar probleme. Die sekuriteitsnavorsers wat die kwesbaarheid geïdentifiseer het, het opgemerk hoe vinnig die probleem opgelos is: 'n pleister is voorberei en opdaterings is vrygestel binne drie uur nadat die OpenBSD-projek kennisgewing ontvang het.

Byvoeging: Die probleem is 'n nommer toegeken CVE-2019-19726. Gemaak op die oss-sekuriteit poslys amptelike aankondiging, insluitend 'n prototipe ontginning wat op OpenBSD 6.6, 6.5, 6.2 en 6.1 argitekture loop
amd64 en i386 (die ontginning kan aangepas word vir ander argitekture).
Die probleem is ontginbaar in die verstekinstallasie en laat 'n onbevoorregte plaaslike gebruiker toe om kode as wortel uit te voer via biblioteekvervanging wanneer die chpass- of passwd suid-nutsprogramme uitgevoer word. Om die lae geheue toestande te skep wat nodig is vir werking, stel die RLIMIT_DATA limiet via setrlimit.

Bron: opennet.ru

Voeg 'n opmerking