CRITICALCVSS v3.1 9.8Vulnerability

CVE-2026-111058

Mercury runs a JupyterLab server with **anonymous access by default** (`mercury_app/__main__.py` sets `--IdentityProvider.token=''` when no `--token`/`MERCURY_TOKEN` is given; when tokenless it also sets `--ServerApp.disable_check_xsrf=True`). It relies on a **blocklist** (`mercury_app/block_handler.py` `BLOCKED_PATTERNS`: `/lab`, `/api/terminals`, `/api/shutdown`, `/files`) to keep anonymous users off dangerous Jupyter endpoints. ## The vulnerability `/api/kernels` is **NOT** in the blocklist (and cannot be — Mercury needs kernels to run notebooks), and `patch_kernel_websocket_handler()` (`mercury_app/idle_timeout.py`) only tracks the idle-timeout: it wraps `on_message` to call `self.application._timeout_manager.touch()` and then invokes the original handler with **no filtering of `execute_request`**. So any unauthenticated network client can: ``` POST /api/kernels {"name":"python3"} -> 201, returns kernel id open websocket /api/kernels/<id>/channels send an execute_request with arbitrary code -> arbitrary Python execution = RCE ``` ## Distinct from GHSA-f8c7-rwf9-fmgm (incomplete fix) GHSA-f8c7 was "Unauthenticated RCE via `/api/terminals`" — a missing-comma blocklist bypass. Its fix (add the comma so `/api/terminals` is blocked) does **NOT** address `/api/kernels`, which remains exploitable. The blocklist approach is fundamentally unable to cover kernels, so this is not a variant that another blocklist entry fixes. ## Runtime-proven (on the patched version) On **mercury 3.2.4** — the release that fixed GHSA-f8c7 — with the default (tokenless) config, as an unauthenticated client: `POST /api/terminals` returns **403** (the f8c7 fix is present), but `POST /api/kernels` returns **201**; opening the kernel websocket and sending an `execute_request` executed attacker-supplied Python (ran `whoami` as the server process user and wrote a marker file `/tmp/PWNED_MERCURY_RCE`). Full unauthenticated remote code execution. Deterministic PoC (client script + notebo

Properties

Severity
critical
Summary
Mercury: Unauthenticated Remote Code Execution via /api/kernels
Nvd fetched at
2026-10-20T21:14:08.448323+00:00
Epss score
0.00437
Cvss severity
CRITICAL
Cvss score
9.8
Retrieved at
2026-10-21T01:24:48+00:00
Ghsa published
2026-10-19T16:49:08Z
Source url
https://github.com/advisories/GHSA-rv4m-xm3f-3ccq
Ghsa updated
2026-10-19T16:49:08Z
Ghsa id
GHSA-rv4m-xm3f-3ccq
Last source
FIRST EPSS
Score
9.8
Cvss version
3.1
Cve id
CVE-2026-111058
Cvss vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
First seen by Signal
2026-10-19T19:31:52+00:00
Is ghsa only
false
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Published at
2026-10-19T16:17:03.957

Related Entities (3)

AFFECTS (1)

→[Software]pip/mercury

HAS_WEAKNESS (1)

VULNERABLE_TO (1)

←[Software]pip/mercury

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-111058 (CVSS v3.1 9.8) — Ninja Signal Threat Intelligence | Ninja Signal