Python pakettis Js2Py, mis laaditi eelmisel kuul alla 1,2 miljonit korda, avastati haavatavus (CVE-2024-28397), mis vĂ”imaldab kĂ”rvale hiilida liiva kastist isolatsioonist ja kĂ€ivitada sĂŒsteemis koodi spetsiaalselt vormindatud JavaScript andmete töötlemisel. Haavatavust saab kasutada rĂŒnnakute jaoks programmide vastu, mis kasutavad Js2Py JavaScript koodi tĂ€itmiseks. Parandus on praegu saadaval ainult patachina. RĂŒnnakuvĂ”imekuse kontrollimiseks on loodud eksploiti prototĂŒĂŒp.
Js2Py pakett rakendab JavaScripti tĂ”lkijat ja interpreteerijat, mis vĂ”imaldab tĂ€ita JavaScripti koodi isoleeritud. virtuaalses masinas vĂ”i tĂ”lkida JavaScripti Pythonisse. Projekt on tĂ€ielikult kirjutatud Pythonis ja ei kasuta kolmanda osapoole JavaScripti mootoreid. Praktikas kasutatakse raamatukogu erinevates veebindeksijates, tĂ”ukimise sĂŒsteemides ja veebilehtede analĂŒsaatorites, mis toetavad JavaScriptiga genereeritud sisu töötlemist.
Rakendustest, mida haavatavus mĂ”jutab, mainitakse Lightnovel Crawlerit (tööriist raamatute allalaadimiseks veebiteenustest ja nende salvestamiseks erinevates formaatides offline-lugemiseks), cloudscraperit (automaatne kaitsenĂ”uete ĂŒmbersĂ”idu tööriist, mida kasutatakse CDN Cloudflare'is) ja pyLoadi (allalaadimise haldaja, mis toetab JavaScriptiga genereeritud lehtede töötlemist). Neis rakendustes spetsiaalselt vormindatud JavaScript sisu töötlemisel vĂ”ib rĂŒndaja kĂ€ivitada sĂŒsteemi taseme vabalt valitud koodi.
Haavatavus esineb js2py globaalset muutuja implementatsioonis, mis vĂ”imaldab pÀÀseda Python objekti viideti isoleeritud keskkonna JavaScripti koodist, vaatamata js2py.disable_pyimport() meetodi vĂ€ljakutsele, et keelata Python objektide importimine. Vabalt valitud koodi kĂ€ivitamiseks sĂŒsteemis vĂ”ib rĂŒndaja kasutada haavatavust, et pÀÀseda Python alamsĂŒsteemi subprocess objekti Popen. TĂ€helepanuvÀÀrne on, et haavatavuse likvideerimise muudetud versioon saadeti Js2Py projektile 1. mĂ€rtsil, kuid kolme ja poole kuu jooksul ei ole seda vastu vĂ”etud.
Allikas: opennet.ru
