Schwachstelle an ld.so OpenBSD

Dynamic loader ld.sou, abegraff mat OpenBSD, kann ënner bestëmmte Konditiounen, SUID/SGID- Uwendungen verloossen d'LD_LIBRARY_PATH Ëmfeld Variabel an erlaben also Drëtt Partei Code am Kontext vun engem Prozess mat erhiewte Privilegien ze lueden. Patches déi d'Schwachheet fixéieren si verfügbar fir Verëffentlechungen 6.5 и 6.6. Binär Patches (syspatch) fir amd64, i386 an arm64 Plattforme si scho a Produktioun a solle verfügbar sinn fir erofzelueden wann dës Neiegkeet publizéiert gëtt.

D'Essenz vum Problem: während der Operatioun extrahéiert ld.so fir d'éischt de Wäert vun der Variabel LD_LIBRARY_PATH aus der Ëmwelt a benotzt d'Funktioun _dl_split_path() an verwandelt se an eng Rei vu Saiten - Weeër fir Verzeichnisser. Wann et spéider erausstellt datt den aktuelle Prozess vun enger SUID/SGID Applikatioun gestart gëtt, da ginn déi erstallt Array an tatsächlech d'LD_LIBRARY_PATH Variabel geläscht. Zur selwechter Zäit, wann _dl_split_path () aus Erënnerung leeft (wat schwéier ass wéinst der explizit 256 kB Limit op d'Gréisst vun den Ëmfeldvariablen, awer theoretesch méiglech ass), da kritt d'_dl_libpath Variabel de Wäert NULL, a spéider Iwwerpréiwung vum Wäert vun dëser Variabel wäert den Uruff un _dl_unsetenv ("LD_LIBRARY_PATH") iwwersprangen.

Schwachstelle fonnt vun Experten Qualy's, sou wéi e puer virdrun opgedeckt Problemer. D'Sécherheetsfuerscher, déi d'Schwachheet identifizéiert hunn, hu festgestallt wéi séier de Problem geléist gouf: e Patch gouf virbereet an d'Aktualiséierunge goufen bannent dräi Stonnen verëffentlecht nodeems de OpenBSD Projet Notifikatioun kritt huet.

Zousatz: De Problem gouf eng Nummer zougewisen CVE-2019-19726. Gemaach op der oss-Security Mailing Lëscht offiziell Ukënnegung, dorënner e Prototyp Exploit op OpenBSD 6.6, 6.5, 6.2 a 6.1 Architekturen
amd64 an i386 (den Exploit ka fir aner Architekturen ugepasst ginn).
D'Thema ass exploitéierbar an der Standardinstallatioun an erlaabt en onprivilegéierte lokale Benotzer Code als Root iwwer Bibliothéikssubstitutioun auszeféieren wann Dir de chpass oder passwd suid Utilities leeft. Fir déi niddereg Erënnerungsbedéngungen ze kreéieren déi néideg sinn fir Operatioun, setzt d'RLIMIT_DATA Limit iwwer setrlimit.

Source: opennet.ru

Setzt e Commentaire