Vulnerabilidad RCE en la librería js2py de Python

Una vulnerabilidad crítica en la librería js2py, ha dejado innumerables webs scrapers (proceso de extracción de contenidos y datos de sitios web mediante software) y aplicaciones expuestas a ataques de ejecución remota de código (RCE). La falla, designada CVE-2024-28397, permite a actores maliciosos salir del entorno limitado de JavaScript y ejecutar comandos arbitrarios en el sistema.

  • CVE-2024-28397 (CVSS 8.8): Un atacante puede aprovechar la vulnerabilidad engañando a un objetivo para que procese un archivo JavaScript malicioso, ya sea a través de un sitio web comprometido o una llamada API engañosa. Una vez ejecutado el script malicioso, el atacante obtiene acceso al sistema y le permite ejecutar cualquier comando que desee.

El investigador de seguridad Marven11 descubrió la vulnerabilidad en febrero y de manera responsable envió un parche al repositorio oficial js2py. Sin embargo, después de cuatro meses de silencio por parte de los encargados del proyecto, Marven11 decidió hacer públicos tanto el exploit de prueba de concepto como la solución.

Productos y versiones afectadas:

  • Todas las versiones de js2py hasta la 0.74 inclusive que se ejecutan en versiones de Python inferiores a 3.12.
  • Varios proyectos que utilizan js2py, incluidos pyload, cloudcraper y lightnovel-crawler, también son vulnerables.

Solución:

  • Por el momento, no hay ningún parche oficial disponible por parte de los desarrolladores de la librería js2py, de igual manera Python no ha proporcionado parches que aborden la vulnerabilidad mencionada.

Existe un parche no oficial proporcionado por el investigador de seguridad Marven11 utilizando el script fix.py o parcheando manualmente el código fuente con las instrucciones en patch.txt publicados en su repositorio de GitHub.

Recomendaciones:

  • Actualizar cualquier aplicación que dependa de js2py a la versión más reciente disponible.
  • Monitorear activamente las aplicaciones que usan js2py para detectar cualquier actividad sospechosa o intentos de explotación.

Referencias: