Descripción
Mercury es un framework de Python para compartir notebooks de Jupyter como aplicaciones web y paneles. Desde la versión 3.0.0 hasta la 3.2.4, la falta de una coma en BLOCKED_PATTERNS concatena los literales de expresiones regulares /lab y /api/terminals. Por ello, las solicitudes a /api/terminals eluden la lista de bloqueo de endpoints anónimos y llegan a la API de terminales de Jupyter Server. Un atacante no autenticado puede usar la shell interactiva del sistema operativo resultante para ejecutar comandos y acceder a los datos disponibles para el proceso de Mercury. Este problema está corregido en la versión 3.2.4.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- mercury Afectadas: >= 3.0.0, < 3.2.4
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/mljar/mercury/security/advisories/GHSA-f8c7-rwf9-fmgm
- Referencia en github.comgithub.com/mljar/mercury/commit/8c467129037ee9df269d543ac217ffd33b97b…
- Referencia en github.comgithub.com/mljar/mercury/releases/tag/v3.2.4
Ver el texto original en inglés (CVE.org)
Mercury: Unauthenticated Remote Code Execution in /api/terminals - access control bypass
Mercury is a Python framework for sharing Jupyter notebooks as web applications and dashboards. From 3.0.0 until 3.2.4, a missing comma in BLOCKED_PATTERNS concatenates the /lab and /api/terminals regular-expression literals. Requests to /api/terminals therefore bypass the anonymous endpoint blocklist and reach Jupyter Server's terminal API. An unauthenticated attacker can use the resulting interactive operating-system shell to execute commands and access data available to the Mercury process. This issue is fixed in version 3.2.4.