Vulnerabilnost v Pythonu, ki omogoča izvajanje sistemskih ukazov iz izoliranih skriptov

Objavljen je bil način za obvretje sistemov izolirane izvedbe kode v programskem jeziku Python, ki temelji na dolgotrajni napaki, ki se je pojavila v Pythonu 2.7, identificirani leta 2012 in še vedno ni odpravljena v Pythonu 3. Napaka omogoča, da se s posebno sestavljenim kodo v Pythonu sproži dostop do že osvobojene pomnilniške enote (Use-After-Free) v CPythonu. Sprva je bilo predpostavljeno, da napaka ne predstavlja varnostne grožnje in da lahko le v zelo redkih primerih, ponavadi umetno ustvarjenih, vodi do zrušitve skripta.

Raziskovalec varnosti pod psevdonimom kn32 se je zanimil za problem in uspel pripraviti delujoč izkoriščevalec, ki omogoča izvajanje katerega koli sistemskega ukaza, brez neposrednega dostopa do metod, kot je os.system. Izkoriščevalec je realiziran v čistem jeziku Python in deluje brez uvoza zunanjih knjižnic in brez namestitve obdelovalca „code.__new__“. Uporablja se samo „builtin.__id__“, ki običajno ni prepovedan. S praktičnega vidika se lahko predlagana koda uporablja za obvretje mehanizmov izolacije v različnih storitvah in okolju (na primer v izobraževalnih okoljih, spletnih konzolah, vgrajenih obdelovalcih itd.), ki dovoljujejo izvajanje kode v Pythonu, a omejujejo dostopne klice in ne dovoljujejo dostopa do takih metod, kot je os.system.

Predlagana koda predstavlja analog klica os.system, ki deluje skozi izkoriščanje ranljivosti v CPythonu. Izkoriščevalec deluje z vsemi različicami Pythona 3 na sistemih z arhitekturo x86-64 in demonstrira stabilno delovanje v Ubuntu 22.04, celo ob vklopu zaščitnih načinov PIE, RELRO in CET. Delo se osredotoča na pridobivanje informacij o naslovu ene od funkcij v izvršeni kodi CPython. Na podlagi te naslova se izračuna osnovni naslov CPython v pomnilniku in naslov funkcije system() v naloženem primeru libc. Na koncu se sproži neposredni prehod na določen naslov system s prilagoditvijo kazalca prvega argumenta na niz „/bin/sh”.

Vulnerabilnost v Pythonu, ki omogoča izvajanje sistemskih ukazov iz izoliranih skriptov


Izvor: opennet.ru
Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster