Pythonis ilmnenud haavatavus, mis võimaldab kutsuda süsteemikäske isolatsiooni all olevatest skriptidest

Avaldatud on meetod koodide isoleeritud käitamise süsteemide ümbersaatmiseks Pythonis, mis põhineb juba pikka aega tuntud veal, mis tekkis Python 2.7-s, avastatud 2012. aastal ja siiani parandamata Python 3-s. Veat võimaldab spetsiaalselt koostatud koodi abil esitada päringuid juba vabastatud mällu (Use-After-Free) CPythonis. Alguses arvatati, et see viga ei kujuta endast turvariski ja võib põhjustada skripti ootamatut lõpetamist ainult väga harvadel juhtudel, mis on tavaliselt kunstlikult loodud.

Turvauurija, kelle hüüdnimi on kn32, huvitus probleemist ja suutis valmistada toimiva ekspluateerimise, mis võimaldab kutsuda mistahes süsteemikäsku, ilma et oleks otsest juurdepääsu osadele nagu os.system. Ekspluateerimine on kirjutatud puhtalt Pythonis ning töötab ilma väliste raamatukogude importimiseta ega 'code.__new__' töötlija paigaldamiseta. Kasutatakse ainult 'builtin.__id__', mida tavaliselt ei keelata. Praktikas võib pakutud koodi kasutada isoleerimismeetodite ümbersaatmiseks erinevates teenustes ja keskkondades (nt õpikodades, online-keskkondades, sisseehitatud töötlijates jms), mis lubavad Pythoniga koodi käivitada, kuid piiravad saadavalolevaid kutseid ega võimalda juurdepääsu sellistele meetoditele nagu os.system.

Pakutud kood on os.system'i kutse analoog, mis töötab CPythonis esineva haavatavuse kaudu. Ekspluateerimine töötab kõigi Python 3 versioonide puhul süsteemides, mille arhitektuur on x86-64, ja näitab stabiilset tööd Ubuntu 22.04-s, isegi kui on aktiveeritud kaitsemehhanismid nagu PIE, RELRO ja CET. Töö seisneb sellele, et Pythonikoodist saadakse teave ühe funktsiooni aadressi kohta CPython'i käivitatavas koodis. Selle aadressi alusel arvutatakse CPython'i baasaadress mälus ja system() funktsiooni aadress juba laaditud libc-s. Lõpuks algatatakse otsepöördumine kindla aadressi poole, asendades esimese argumendi osutaja stringiga '/bin/sh'.

Pythonis ilmnenud haavatavus, mis võimaldab kutsuda süsteemikäske isolatsiooni all olevatest skriptidest


Allikas: opennet.ru
Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster