Skip to main content

Jupyter Server CVE-2026-114135

| EUVDEUVD-2026-107544 HIGH
Missing Authorization (CWE-862)
2026-10-21 GitHub_M GHSA-354v-3q48-cv69
8.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as restricted Jupyter user
  2. Delivery
    Open upstream kernel channels websocket
  3. Exploit
    Reach handler that omits execute authorization
  4. Execution
    Run arbitrary code in kernel
  5. Impact
    Exfiltrate kernel data and credentials

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires (1) the GatewayClient.url traitlet to be configured, which swaps the normal KernelWebsocketHandler for WebSocketChannelsHandler (versions 2.0.0-2.5.x), OR (2) in 2.6.0 and later, a deployment that manually registers the deprecated jupyter_server.gateway.handlers module; and (3) a valid but restricted authenticated account whose configured Authorizer explicitly denies the 'execute' action on the 'kernels' resource. Default (non-gateway) configurations in 2.6.0+ are fixed and NOT exploitable. Limiting factors: authentication is required (PR:L, not anonymous), the vulnerable gateway mode is a non-default configuration, and the bypass is only meaningful where a deny-by-policy Authorizer is actually enforced - single-user or allow-all deployments gain nothing from it.

Impact

This is a genuine, actionable authorization-bypass (CWE-862) rather than an inflated high-CVSS score, but its real-world blast radius is gated by a non-default deployment mode. The NVD CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, 8.8) is internally consistent with the description: a network-reachable, low-complexity bypass requiring only a low-privileged authenticated account (PR:L) that yields full code execution inside a kernel - hence C:H/I:H/A:H. The critical caveat is that exploitation is NOT universal across all Jupyter Server installs: it only applies when GatewayClient.url is enabled (gateway mode) in 2.0.0-2.5.x, or when a 2.6.0+ deployment manually registers the deprecated jupyter_server.gateway.handlers module. No EPSS score was provided and the CVE is not on CISA KEV, so there is no evidence of active exploitation. No weaponized POC was supplied - the only source-code evidence is the vendor fix (PR #1261 / commit 35ffe5d / release v2.6.0), which is remediation, not exploit code. Net assessment: prioritize patching for any environment running Jupyter Server in gateway mode with a multi-tenant Authorizer policy, but it is a lower priority for standard single-user or non-gateway deployments, which are unaffected.

Exploit ScenarioDerived

In a multi-tenant JupyterHub/Jupyter Server deployment configured with GatewayClient.url (gateway mode), a restricted authenticated user whose Authorizer policy denies the 'execute' action opens the kernel 'channels' websocket, which is handled by WebSocketChannelsHandler. Because that handler authenticates the user but never calls authorizer.is_authorized() for the execute action, the user obtains full kernel execution and can read data and credentials accessible to the kernel. No public exploit identified at time of analysis; only the upstream fix (PR #1261) is published.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 21, 2026

Authorization bypass in Jupyter Server gateway mode (2.0.0 through 2.6.0) allows a restricted authenticated user to open an upstream kernel channel and execute code even when the configured Authorizer explicitly denies the kernel execute action, exposing kernel data and credentials and permitting environment modification or disruption. Exploitation requires a non-default GatewayClient.url configuration (or, in 2.6.0 and later, manual registration of the deprecated jupyter_server.gateway.handlers module) plus a valid low-privileged account whose policy denies execute; the default gateway configuration in 2.6.0 and later is fixed. No public exploit code or confirmed active exploitation was identified at time of analysis, and the CVSS 8.8 score reflects high confidentiality, integrity, and availability impact under that gated configuration.

RemediationAI

Vendor-released patch: upgrade to jupyter_server 2.6.0 or later, which fixes the default gateway configuration and replaces the vulnerable handler path (GHSA-354v-3q48-cv69, PR 1261, commit 35ffe5d, release v2.6.0). Upgrading alone is insufficient for deployments that manually register the deprecated jupyter_server.gateway.handlers module on 2.6.0 or later; those deployments must stop registering that module and migrate to the supported jupyter_server.gateway.connections implementation, or remove the manual registration entirely, since the deprecated handler continues to skip the Authorizer kernel-execute decision. If an immediate upgrade is not possible, disable GatewayClient.url and run Jupyter Server without gateway mode, which restores KernelWebsocketHandler and its authorization check at the cost of losing gateway/enterprise kernel proxying. As a secondary compensating control, restrict network access to the gateway websocket endpoint to trusted users or networks and audit Authorizer policies for kernel execute grants, but note that neither measure repairs the bypass for users who can still reach the vulnerable handler.

Affected VersionsENISA

jupyter_server 2.0.0, < 2.6.0

Affected Packages

pypi jupyter-server fix: 2.6.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a missing-authorization case (CWE-862) in Jupyter Server's gateway proxying path. When the GatewayClient.url traitlet is configured, the server replaces the normal KernelWebsocketHandler with WebSocketChannelsHandler, which authenticates the websocket user but never calls authorizer.is_authorized(...) for the execute action on the kernels resource. The handler then proxies the websocket to an upstream kernel/enterprise gateway, so a user whose policy explicitly denies kernel execution can still reach the kernel channel and run code. The 2.6.0 fix introduces a dedicated GatewayWebSocketConnection class in jupyter_server/gateway/connections.py and corrects the default gateway configuration, but the deprecated jupyter_server.gateway.handlers module retains the same omission when a deployment manually registers it. The CPE jupyter-server:jupyter_server:* confirms the affected package; no separate library or protocol component is implicated beyond the websocket channel and Authorizer integration.

Know when Jupyter Server gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

Network-reachable websocket (AV:N), no special timing (AC:L), requires a low-privileged authenticated account (PR:L), no user interaction; kernel code execution yields full C/I/A impact within the unchanged scope.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Red Hat 8.8 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 21:18 EUVD
CVE Published
Oct 21, 2026 - 19:58 cve.org
HIGH 8.8

DescriptionCVE.org

Jupyter Server is the backend for Jupyter web applications. From 2.0.0 until 2.6.0, enabling GatewayClient.url replaced the normal KernelWebsocketHandler with WebSocketChannelsHandler, which authenticated the user but did not call authorizer.is_authorized(...) for the execute action on the kernels resource. A restricted authenticated user could therefore open an upstream kernel channel and obtain kernel execution despite the configured Authorizer denying that action, exposing data and credentials available to the kernel and permitting modification or disruption of the kernel environment. The default gateway configuration is fixed in version 2.6.0. In 2.6.0 and later, the same authorization bypass remains possible when a deployment manually registers the deprecated jupyter_server.gateway.handlers module, because its handler still omits the configured kernel-execute authorization decision.

Technical POC Analysis

CWE-862 (Missing Authorization).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Jupyter Server gateway mode (versions 2.0.0 through 2.6.0) contains an authorization bypass that allows a low-privileged user to execute code on upstream kernels even when the platform's Authorizer explicitly denies the kernel execute action, potentially exposing kernel data and credentials and permitting environment tampering or disruption. Exposure is concentrated in organizations running customized multi-server notebook architectures, since exploitation requires a non-default GatewayClient.url setting or, on 2.6.0 and later, manual registration of the deprecated gateway handler module, plus an account whose policy denies execute. Leadership should care because a successful bypass yields code execution inside the data-science environment, which frequently holds cloud credentials, datasets, and model artifacts.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: remove non-default GatewayClient.url configuration and run the default gateway setup; avoid manual registration of the deprecated jupyter_server.gateway.handlers module on 2.6.0 and later; restrict and segment network access from notebook servers to approved upstream gateway hosts; monitor Authorizer denials for kernel execute actions; rotate credentials and tokens reachable from kernel environments; and enforce least privilege on all gateway accounts.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
High
Jupyter Server widely deployed across ML/data-science and enterprise notebook environments
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy