Пакет Js2Py реализует интерпретатор и транслятор JavaScript, позволяющий выполнять JavaScript-код в изолированной виртуальной машине или транслировать JavaScript в представление на языке Python. Проект написан целиком на языке Python и не использует сторонние JavaScript-движки. На практике библиотека используется в различных web-индексаторах, системах загрузки и анализаторах сайтов, поддерживающих обработку контента, генерируемого кодом на JavaScript.
Из приложений, которые затрагивает уязвимость, отмечаются Lightnovel Crawler (утилита для загрузки книг из online-сервисов и сохранения их в различных форматах для offline-чтения), cloudscraper (автоматически обход страниц защиты от ботов, используемых в CDN Cloudflare) и pyLoad (менеджер загрузок, поддерживающий обработку страниц, генерируемых на JavaScript). При обработке в данных приложениях специально оформленного JavaScript-контента злоумышленник может добиться выполнения произвольного кода на уровне системы.
Уязвимость присутствует в реализации глобальной переменной внутри js2py, позволяющей получить ссылку на Python-объект из выполняемого в изолированном окружении коде на JavaScript, невзирая на вызов метода js2py.disable_pyimport() для отключения импорта Python-объектов. Для выполнения произвольного кода в системе атакующий может воспользоваться уязвимостью для получения доступа к объекту Popen из Python-модуля subprocess. Примечательно, что изменение с устранением уязвимости было отправлено в проект Js2Py первого марта, но за три с половиной месяца так и не было принято.
Источник: http://www.opennet.ru/opennews/art.shtml?num=61421