Horizon Alert
Summary of the vulnerability and why it matters
A vulnerability exists in the Mercury framework that allows unauthenticated users to execute arbitrary Python code by creating Jupyter kernels. This could potentially lead to significant compromise of systems running affected versions of Mercury, which is used for sharing Jupyter notebooks as web applications. The main concern is confirming whether your organization uses this technology and is exposed.
- Unauthenticated code execution via web applications.
- Affects systems sharing interactive notebooks.
- Confirm relevance and exposure.
Attack Path
How an attacker could exploit the issue
An attacker could exploit this vulnerability by accessing a Mercury deployment that uses default tokenless configurations. Since the framework is designed for sharing notebooks as web applications, these deployments are often exposed externally. An attacker could then create a Jupyter kernel and send messages that execute arbitrary Python code, potentially leading to unauthorized actions and data compromise.
- No authentication required.
- Create kernel and send executable messages.
- Arbitrary code execution and data compromise.
Live Threat
Current exploitation, exposure, and threat context
When deployed with default tokenless configurations, this vulnerability could allow unauthenticated users to create and interact with Jupyter kernels, potentially executing arbitrary Python code. This could affect the behavior of the Mercury service and any underlying system resources it accesses.
- System data and service behavior.
- Anonymous clients can execute arbitrary Python.
- Compromise of service and underlying systems.
Operational Fix
Recommended remediation, mitigation, and detection steps
This vulnerability in Mercury impacts deployments that allow anonymous, tokenless access, enabling unauthenticated users to execute arbitrary Python code. Platform or infrastructure teams are likely responsible for managing the Mercury framework, while application owners who use Mercury to share notebooks must be engaged. The first practical step is to identify all Mercury instances, determine their exposure and criticality, and then coordinate remediation with the appropriate teams.
- Identify Mercury deployments and ownership.
- Verify anonymous access and reachability.
- Plan remediation based on risk.