Zraniteľnosť v ld.so OpenBSD

Dynamický načítač ld.so, ktorý je súčasťou OpenBSD, za určitých podmienok môže pre SUID/SGID-aplikácie nechať premennú prostredia LD_LIBRARY_PATH a tým umožniť načítanie externého kódu v kontexte procesu, ktorý sa vykonáva s zvýšenými oprávneniami. Opravy na odstránenie zraniteľnosti sú dostupné pre vydania 6.5 a 6.6. Binarne opravy (syspatch) pre platformy amd64, i386 a arm64 už boli nasadené do výroby a mali by byť k dispozícii na stiahnutie v čase zverejnenia tejto správy.

Podstata problému: Počas práce ld.so najprv vy extrahuje z prostredia hodnotu premennej LD_LIBRARY_PATH, pomocou funkcie _dl_split_path() ju transformuje na pole reťazcov — ciest k adresárom. Ak sa neskôr zistí, že aktuálny proces je spustený SUID/SGID-aplikáciou, tak vytvorené pole a vlastne aj premenná LD_LIBRARY_PATH sa vyčistia. Pri tom, ak počas práce _dl_split_path() narazí na nedostatok pamäte (čo je ťažké kvôli existujúcim explicitným obmedzeniam na veľkosť premenných prostredia na 256 kB, ale teoreticky možné), tak premenná _dl_libpath získa hodnotu NULL a následná kontrola hodnoty tejto premennej spôsobí, že sa vynechá volanie _dl_unsetenv(„LD_LIBRARY_PATH“).

Zraniteľnosť bola nájdená odborníkmi Qualys, ako aj niekoľko predtým odhalených problémov. Výskumníci v oblasti bezpečnosti, ktorí zistili zraniteľnosť, si všimli rýchlosť riešenia problému: oprava bola pripravená a aktualizácie vydané do troch hodín po prijatí oznámenia projektom OpenBSD.

Doplnok: Problému bol priradený číslo CVE-2019-19726. V zozname distribúcie oss-security bol vydaný oficiálny oznámenie, ktoré obsahuje prototyp exploit, ktorý funguje v OpenBSD 6.6, 6.5, 6.2 a 6.1 na architektúrach
amd64 a i386 (exploit môže byť prispôsobený aj pre iné architektúry).
Problém je zneužiteľný v predvolenej inštalácii a umožňuje neoprávnenému lokálnemu používateľovi spustiť kód s právami root prostredníctvom substitúcie knižnice pri spúšťaní suid-nástrojov chpass alebo passwd. Na vytvorenie podmienok potrebných na zneužitie nedostatku pamäte sa používa nastavenie obmedzenia RLIMIT_DATA pomocou setrlimit.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster