Eine Schwachstelle im Python-Paket Js2Py, das über eine Million Mal pro Monat heruntergeladen wird

Im Python-Paket Js2Py, das im vergangenen Monat 1,2 Millionen Mal heruntergeladen wurde, wurde eine Schwachstelle (CVE-2024-28397) entdeckt, die es ermöglicht, die Sandbox-Isolierung zu umgehen und Code im System auszuführen, wenn speziell formatierte Daten in JavaScript verarbeitet werden. Diese Schwachstelle kann verwendet werden, um Angriffe auf Programme durchzuführen, die Js2Py zur Ausführung von JavaScript-Code verwenden. Der Patch ist derzeit nur als Patch verfügbar. Ein Prototyp des Exploits wurde zur Überprüfung der Angriffs Möglichkeit vorbereitet.

Das Paket Js2Py implementiert einen Interpreter und einen Transpiler für JavaScript, der es ermöglicht, JavaScript-Code in einer isolierten Umgebung auszuführen virtuellen Maschine oder JavaScript in eine Darstellung in Python zu übersetzen. Das Projekt ist vollständig in Python geschrieben und verwendet keine externen JavaScript-Engines. In der Praxis wird die Bibliothek in verschiedenen Web-Crawlern, Download-Systemen und Website-Analysetools verwendet, die die Verarbeitung von Inhalten unterstützen, die durch JavaScript-Code generiert werden.

Zu den Anwendungen, die von der Schwachstelle betroffen sind, zählen Lightnovel Crawler (ein Tool zum Herunterladen von Büchern aus Online-Diensten und deren Speicherung in verschiedenen Formaten für das Offline-Lesen), cloudscraper (automatisches Umgehen von Schutzelementen gegen Bots, die in CDN Cloudflare verwendet werden) und pyLoad (ein Download-Manager, der die Verarbeitung von Seiten unterstützt, die in JavaScript generiert werden). Bei der Verarbeitung von speziell formatiertem JavaScript-Inhalt in diesen Anwendungen kann ein Angreifer die Ausführung willkürlichen Codes auf Systemebene erreichen.

Die Schwachstelle ist in der Implementierung einer globalen Variablen innerhalb von js2py vorhanden, die es ermöglicht, auf ein Python-Objekt aus dem im isolierten Umfeld ausgeführten JavaScript-Code zuzugreifen, ungeachtet des Aufrufs der Methode js2py.disable_pyimport(), um den Import von Python-Objekten zu deaktivieren. Um willkürlichen Code im System auszuführen, kann der Angreifer die Schwachstelle nutzen, um Zugriff auf das Popen-Objekt aus dem Python-Modul subprocess zu erhalten. Bemerkenswert ist, dass die Änderungen zur Behebung der Schwachstelle am ersten März im Projekt Js2Py eingereicht wurden, aber in dreieinhalb Monaten nicht akzeptiert wurden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4