I Python-pakken Js2Py, som blev downloadet 1,2 millioner gange i sidste måned, er der opdaget en sårbarhed (CVE-2024-28397), der muliggør omgåelse af sandbox-isoleringen og udførelse af kode på systemet ved behandling af specielt udformede data på JavaScript. Sårbarheden kan bruges til angreb på programmer, der anvender Js2Py til at udføre JavaScript-kode. Der er indtil videre kun tilgængeligt et patch som løsning.
Js2Py-pakken implementerer en fortolker og oversætter for JavaScript, der muliggør udførelse af JavaScript-kode i en isoleret virtuelle maskiner eller oversætter JavaScript til en repræsentation på Python-sprog. Projektet er helt skrevet i Python og bruger ikke eksterne JavaScript-motorer. I praksis bliver biblioteket brugt i forskellige webindekserere, download-systemer og website-analysetools, der understøtter behandling af indhold genereret af JavaScript-kode.
Blandt de applikationer, der berøres af sårbarheden, er Lightnovel Crawler (et værktøj til at downloade bøger fra online-tjenester og gemme dem i forskellige formater til offline-læsning), cloudscraper (automatiske omgåelse af botbeskyttelsessider, der anvendes i CDN Cloudflare) og pyLoad (en download-manager, der understøtter behandling af sider genereret på JavaScript). Ved behandling af specielt udformet JavaScript-indhold i disse applikationer kan en angriber opnå udførelse af vilkårlig kode på systemniveau.
Sårbarheden findes i implementeringen af den globale variabel inden for js2py, hvilket muliggør at få adgang til et Python-objekt fra den udførende kode på JavaScript i det isolerede miljø, til trods for kaldet af metoden js2py.disable_pyimport() for at deaktivere import af Python-objekter. For at udføre vilkårlig kode på systemet kan angriberen udnytte sårbarheden til at få adgang til Popen-objektet fra Python-modulet subprocess. Det er bemærkelsesværdigt, at ændringen til udbedring af sårbarheden blev sendt til Js2Py-projektet den første marts, men ikke er blevet accepteret efter tre og en halv måned.
Kilde: opennet.ru
