Në paketën Python Js2Py, e cila është shkarkuar 1.2 milion herë muajin e kaluar, është zbuluar një vulnerabilitet (CVE-2024-28397) që lejon bypass të izolimin sandbox dhe ekzekutimin e kodit në sistem gjatë përpunimit të të dhënave të formatuara posaçërisht në JavaScript. Ky vulnerabilitet mund të përdoret për të sulmuar programet që përdorin Js2Py për të ekzekutuar kod JavaScript. Një rregullim është në dispozicion vetëm në formën e një patches. Një prototip eksploiti është përgatitur për të verifikuar mundësinë e sulmit.
Paketa Js2Py implementon një interpreter dhe transletor JavaScript, duke lejuar ekzekutimin e kodit JavaScript në një makinën virtuale ose përkthimin e JavaScript në një përfaqësim në gjuhën Python. Projekti është shkruar plotësisht në gjuhën Python dhe nuk përdor motorë JavaScript të jashtëm. Në praktikë, biblioteka përdoret në indeksues të ndryshëm web, sisteme shkarkimi dhe analizues të faqeve që mbështesin përpunimin e përmbajtjes së gjeneruar nga kodi JavaScript.
Ndër aplikacionet që preken nga vulnerabiliteti, përmenden Lightnovel Crawler (një utilitar për shkarkimin e librave nga shërbimet online dhe ruajtjen e tyre në formate të ndryshme për lexim offline), cloudscraper (automatikisht anashkalon faqet e mbrojtjes nga robotët të përdorura në CDN Cloudflare) dhe pyLoad (menaxher shkarkimesh që mbështet përpunimin e faqeve të gjeneruara në JavaScript). Gjatë përpunimit në këto aplikacione të përmbajtjes JavaScript të formatuar posaçërisht, sulmuesi mund të arrijë ekzekutimin e kodit të rastit në nivelin e sistemit.
Vulnerabiliteti është i pranishëm në implementimin e variableve globale brenda js2py, e cila lejon marrjen e një reference në objektin Python nga kodi JavaScript që ekzekutohet në një ambient të izoluar, pavarësisht thirrjes së metodës js2py.disable_pyimport() për të çaktivizuar importimin e objekteve Python. Për të ekzekutuar kod të rastit në sistem, sulmuesi mund të shfrytëzojë vulnerabilitetin për të marrë qasje në objektin Popen nga moduli Python subprocess. është për tu vënë re se ndryshimi për eliminimin e vulnerabilitetit u dërgua në projektin Js2Py më 1 mars, por pas tre muajve e gjysmë ende nuk ishte pranuar.
Burimi: opennet.ru
