CVE-2026-111057
10.0CriticalPublished 19 Oct 2026 · NVD status: Received · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- Full C/I/A compromise
- Weakness
- CWE-185, CWE-284
Impact
Unauthenticated remote attackers can execute arbitrary OS commands and access host data with Mercury process privileges. All they need is network access to the exposed Mercury instance.
Root cause
A missing comma in the BLOCKED_PATTERNS list concatenated regular expressions, allowing requests targeting the /api/terminals endpoint to bypass authentication checks and open a Jupyter terminal.
Affected systems
Mercury 3.0.0 through versions prior to 3.2.4
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Fix & remediation
Upgrade the mercury Python package to version 3.2.4 or later immediately. If you cannot upgrade right now, restrict network access to the application or block external HTTP requests to /api/terminals at your reverse proxy.
$ pip install --upgrade 'mercury>=3.2.4'AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
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.