Luka w pakiecie Python Js2Py, pobieranym ponad milion razy miesięcznie

W pakiecie Python Js2Py, który w zeszłym miesiącu został pobrany 1,2 mln razy, odkryto lukę (CVE-2024-28397), która umożliwia obejście izolacji sandboxu i wykonanie kodu w systemie podczas przetwarzania specjalnie sformatowanych danych w JavaScript. Luka może być wykorzystywana do ataków na programy, które używają Js2Py do wykonywania kodu JavaScript. Aktualizacja jest obecnie dostępna tylko w formie łatki. Przygotowano prototyp exploita w celu przetestowania możliwości ataku.

Pakiet Js2Py realizuje interpreter i transcompiler JavaScript, który umożliwia wykonywanie kodu JavaScript w izolowanym maszynie wirtualnej lub transkompilowanie JavaScriptu do formy w języku Python. Projekt został napisany w całości w języku Python i nie korzysta z zewnętrznych silników JavaScript. W praktyce biblioteka jest używana w różnych indeksatorach sieci, systemach pobierania i analizatorach witryn, które wspierają przetwarzanie treści generowanej przez kod na JavaScript.

Wymieniane aplikacje, których dotyczy luka, to Lightnovel Crawler (narzędzie do pobierania książek z usług online i zapisywania ich w różnych formatach do odczytu offline), cloudscraper (automatyczne omijanie zabezpieczeń przed botami stosowanych w CDN Cloudflare) oraz pyLoad (menedżer pobierania, wspierający przetwarzanie stron generowanych w JavaScript). Podczas przetwarzania specjalnie sformatowanej treści JavaScript w tych aplikacjach, atakujący może doprowadzić do wykonania dowolnego kodu na poziomie systemu.

Luka występuje w implementacji globalnej zmiennej wewnątrz js2py, umożliwiającej uzyskanie odniesienia do obiektu Pythona z wykonywanego w izolowanym środowisku kodu JavaScript, mimo wywołania metody js2py.disable_pyimport(), mającej na celu wyłączenie importu obiektów Pythona. Aby wykonać dowolny kod w systemie, atakujący może wykorzystać lukę, aby uzyskać dostęp do obiektu Popen z modułu subprocess w Pythonie. Warto zauważyć, że zmiana eliminująca lukę została zgłoszona do projektu Js2Py pierwszego marca, jednak przez trzy i pół miesiąca nie została zaakceptowana.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster