Una vulnerabilidad en el paquete de Python Js2Py, que se descarga más de un millón de veces al mes

Se ha descubierto una vulnerabilidad (CVE-2024-28397) en el paquete Js2Py de Python, que fue descargado 1.2 millones de veces el mes pasado, permitiendo eludir el aislamiento de sandbox y ejecutar código en el sistema al procesar datos diseñados específicamente en JavaScript. La vulnerabilidad puede ser utilizada para atacar programas que emplean Js2Py para ejecutar código JavaScript. Actualmente, la solución solo está disponible en forma de parche. Se ha preparado un prototipo de exploit para verificar la posibilidad de un ataque.

El paquete Js2Py implementa un intérprete y traductor de JavaScript, que permite ejecutar código JavaScript de forma aislada una máquina virtual o traducir JavaScript a una representación en lenguaje Python. El proyecto está completamente escrito en Python y no utiliza motores de JavaScript de terceros. En la práctica, la biblioteca se utiliza en diversos indexadores web, sistemas de descarga y analizadores de sitios que soportan el procesamiento de contenido generado por código JavaScript.

Entre las aplicaciones afectadas por la vulnerabilidad se encuentran Lightnovel Crawler (una utilidad para descargar libros de servicios en línea y guardarlos en diversos formatos para lectura offline), cloudscraper (herramienta que elude automáticamente las páginas de protección contra bots utilizadas en CDN Cloudflare) y pyLoad (un gestor de descargas que soporta el procesamiento de páginas generadas en JavaScript). Al procesar contenido JavaScript diseñado específicamente, un atacante puede lograr la ejecución de código arbitrario a nivel de sistema en estas aplicaciones.

La vulnerabilidad está presente en la implementación de una variable global dentro de js2py, que permite acceder a un objeto de Python desde el código JavaScript ejecutado en un entorno aislado, a pesar de la llamada al método js2py.disable_pyimport() para desactivar la importación de objetos de Python. Para ejecutar código arbitrario en el sistema, un atacante puede aprovechar la vulnerabilidad para obtener acceso al objeto Popen del módulo Python subprocess. Es notable que la modificación que elimina la vulnerabilidad fue enviada al proyecto Js2Py el primero de marzo, pero no ha sido aceptada después de tres meses y medio.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster