Vulnerabilidad en Jupyter Server Proxy (CVE-2024-35225)
Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-79
Neutralización incorrecta de la entrada durante la generación de la página web (Cross-site Scripting)
Fecha de publicación:
11/06/2024
Última modificación:
10/04/2025
Descripción
Jupyter Server Proxy permite a los usuarios ejecutar procesos externos arbitrarios junto con su servidor portátil y proporcionarles acceso web autenticado. Las versiones 3.x anteriores a 3.2.4 y 4.x anteriores a 4.2.0 tienen un problema de cross-site scripting (XSS) reflejado. El endpoint `/proxy` acepta un segmento de ruta `host` en el formato `/proxy/`. Cuando se llama a este endpoint con un valor de "host" no válido, "jupyter-server-proxy" responde con una respuesta que incluye el valor de "host", sin sanitización [2]. Un actor externo puede aprovechar esto enviando un enlace de phishing con un valor de "host" no válido que contenga JavaScript personalizado a un usuario. Cuando el usuario hace clic en este enlace de phishing, el navegador muestra la respuesta `GET /proxy/`, que ejecuta el JavaScript personalizado contenido en `host` establecido por el actor. Como se puede ejecutar cualquier JavaScript arbitrario después de que el usuario hace clic en un enlace de phishing, este problema permite un acceso extenso a la instancia de JupyterLab del usuario para un actor. Los parches se incluyen en las versiones 4.2.0 y 3.2.4. Como workaround, los operadores de servidores que no puedan actualizar pueden desactivar la extensión `jupyter-server-proxy`.
Impacto
Puntuación base 3.x
9.60
Gravedad 3.x
CRÍTICA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:jupyter:jupyter_server_proxy:*:*:*:*:*:*:*:* | 3.0.0 (incluyendo) | 3.2.4 (excluyendo) |
cpe:2.3:a:jupyter:jupyter_server_proxy:*:*:*:*:*:*:*:* | 4.1.2 (incluyendo) | 4.2.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/jupyterhub/jupyter-server-proxy/blob/62a290f08750f7ae55a0c29ca339c9a39a7b2a7b/jupyter_server_proxy/handlers.py#L328
- https://github.com/jupyterhub/jupyter-server-proxy/commit/7abc9dc5bbb0b4b440548a5375261b8b8192fc22
- https://github.com/jupyterhub/jupyter-server-proxy/commit/ff78128087e73fb9d0909e1366f8bf051e8ea878
- https://github.com/jupyterhub/jupyter-server-proxy/security/advisories/GHSA-fvcq-4x64-hqxr
- https://github.com/jupyterhub/jupyter-server-proxy/blob/62a290f08750f7ae55a0c29ca339c9a39a7b2a7b/jupyter_server_proxy/handlers.py#L328
- https://github.com/jupyterhub/jupyter-server-proxy/commit/7abc9dc5bbb0b4b440548a5375261b8b8192fc22
- https://github.com/jupyterhub/jupyter-server-proxy/commit/ff78128087e73fb9d0909e1366f8bf051e8ea878
- https://github.com/jupyterhub/jupyter-server-proxy/security/advisories/GHSA-fvcq-4x64-hqxr