Python'i paketis Js2Py, mis on eelmisel kuul allalaaditud 1,2 miljonit korda, tuvastati turvaprobleem (CVE-2024-28397), mis võimaldab ületada sandbox-isolatsiooni ja käivitada süsteemis koodi, kui töödeldakse spetsiaalselt vormindatud JavaScript-andmeid. Seda haavatavust saab kasutada rünnakuks programmidele, mis kasutavad Js2Py JavaScript-koodi täitmiseks. Parandus on hetkel saadaval ainult patšina. Rünnaku võimaluse kontrollimiseks on loodud ekspluataatori prototüüp.
Js2Py pakett rakendab JavaScript'i tõlkijat ja interpreteerijat, mis võimaldab käitada JavaScript'i koodi isoleeritult virtuaalmasinas või tõlkida JavaScript Python'i keele esitluseks. Projekt on täielikult kirjutatud Python'i keeles ja ei kasuta kolmandate osapoolte JavaScript'i mootoreid. Praktikas kasutatakse seda teeki erinevates veebindikaatorites, allalaadimissüsteemides ja saitide analüsaatorites, mis toetavad JavaScript'i koodi genereeritud sisu töötlemist.
Rakendustest, mida haavatavus mõjutab, on märgitud Lightnovel Crawler (tööriist, mis laadib raamatuid veebiteenustest ja salvestab need erinevates formaatides offline-lugemiseks), cloudscraper (automaatne lahendus botide kaitse ületamiseks, mida kasutatakse Cloudflare'i CDN'is) ja pyLoad (allalaadimisprogramm, mis toetab JavaScript'i genereeritud lehtede töötlemist). Nendes rakendustes, kui töödeldakse spetsiaalselt vormindatud JavaScript'i sisu, võib ründaja saavutada süsteemitasemel äärmise koodi käivitamise.
Haavatavus on olemas js2py teostuses globaalset muutuja, mis võimaldab saada lingi Python'i objektile JavaScript'i koodis, mis käivitatakse isoleeritud keskkonnas, hoolimata js2py.disable_pyimport() meetodi kutsumisest Python'i objektide importimise keelamiseks. Süsteemis arbitrary koodi käivitamiseks võib ründaja kasutada haavatavust Popen objekti saamiseks Python'i moodulist subprocess. Tähelepanuväärne on, et haavatavuse kõrvaldamise muudatus saadi Js2Py projekti 1. märtsil, kuid kolme ja pool kuu jooksul ei ole seda ikka veel aktsepteeritud.
Allikas: opennet.ru
