Skip to main content

JupyterHub CVE-2026-54338

| EUVDEUVD-2026-54678 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-08-07 GitHub_M GHSA-p43p-whwx-q52h
5.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Send POST /login with oversized username field
  2. Delivery
    Authentication fails in form handler or PAM authenticator
  3. Exploit
    Full unbounded username written to application log
  4. Execution
    Repeat at high rate
  5. Persist
    Log partition fills to capacity
  6. Impact
    Host logging and dependent services disrupted

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

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

Exploitation Conditions

No authentication is required - the vulnerability is triggered by submitting a POST request to the publicly accessible /login endpoint with an arbitrarily long 'username' field value. The only prerequisite is network reachability to the JupyterHub login page and that the instance uses form-based login (the default configuration). Exploitation is limited by: the host's available disk I/O bandwidth (caps write rate), any upstream rate limiting or WAF rules on POST body size or request frequency, and the size of the log partition relative to available attack throughput. Deployments using token-only or OAuth-only authentication with form-based login disabled are not affected by this specific path, but the PAM authenticator path in auth.py represents a separate affected code location for PAM-enabled deployments.

Impact

The CVSS 3.1 base score of 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) accurately reflects a remotely exploitable, low-complexity, unauthenticated issue with limited availability impact - no confidentiality or integrity loss is possible. The practical risk is disk exhaustion on the JupyterHub host: an attacker submitting sustained login requests with multi-megabyte usernames can fill log partitions, potentially disrupting the host's ability to write system logs or other application data. However, the impact is bounded by available disk I/O rate and any upstream rate limiting. This is not listed in CISA KEV and no POC has been publicly disclosed, indicating no confirmed active exploitation. EPSS data was not provided in input. The real-world priority is moderate for internet-exposed JupyterHub deployments with no ingress rate limiting; low for deployments behind authentication proxies or network-restricted environments. No conflicting signals exist between CVSS vector and description.

Exploit ScenarioDerived

An unauthenticated attacker sends a high-frequency stream of HTTP POST requests to the JupyterHub /login endpoint, each containing a username field populated with several megabytes of arbitrary data. Each failed authentication attempt writes the full oversized username to the application log, rapidly filling the host's log partition. If the log volume shares disk space with the OS or JupyterHub's working directory, the resulting exhaustion can prevent new user sessions, corrupt in-flight notebook saves, or crash dependent services. No POC code has been publicly identified.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 07, 2026

Log flooding via unbounded username input in JupyterHub's form-based login handler allows unauthenticated remote attackers to exhaust logging and disk storage resources on multi-user Jupyter notebook servers running versions prior to 5.5.0. The root cause (CWE-400) is that failed login attempts wrote the full attacker-supplied username - with no length cap - directly into application logs across three distinct code paths: the base login handler, the login POST handler, and the PAM authenticator. No public exploit code has been identified at the time of analysis, and this vulnerability is not listed in the CISA KEV catalog.

RemediationAI

Upgrade JupyterHub to version 5.5.0 or later, which contains the fix introduced in commit d6dc595f84b7509969686da31d87d6d69e7fce0a. The vendor advisory is available at https://github.com/jupyterhub/jupyterhub/security/advisories/GHSA-p43p-whwx-q52h. If immediate upgrade is not possible, compensating controls include: configuring log rotation with aggressive size caps (e.g., logrotate maxsize 100M) to limit disk consumption - note this does not prevent log flooding, only bounds its impact; deploying a reverse proxy (nginx, Traefik) in front of JupyterHub with per-IP rate limiting on POST /login to reduce the attacker's write throughput; and restricting network access to the JupyterHub login endpoint to known IP ranges where operationally feasible. Rate limiting is the most effective compensating control but may block legitimate users behind shared NAT.

Affected VersionsENISA

jupyterhub < 5.5.0JupyterHub is software that allows users to create a multi-user server for Jupyter notebooks. Prior to 5.5.0, invalid input to form-based login authenticators can place an unbounded attacker-controlled username in failed-login logs, allowing an unauthenticated attacker to consume logging and storage resources. This issue is fixed in version 5.5.0.

Affected Packages

pypi jupyterhub fix: 5.5.0
euvd jupyterhub_5_5_0jupyterhub_is_software_that_allows_users_to_create_a_multi_user_server_for_jupyter_notebooks_prior_to_5_5_0_invalid_input_to_form_based_login_authenticators_can_place_an_unbounded_attacker_controlled_username_in_failed_login_logs_allowing_an_unauthenticated_attacker_to_consume_logging_and_storage_resources_this_issue_is_fixed_in_version no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi, euvd

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

Technical ContextAI · show details

JupyterHub is a Python-based multi-user server for Jupyter notebooks, commonly deployed in academic, research, and data science environments. The affected code spans three files: jupyterhub/handlers/base.py (login_user method), jupyterhub/handlers/login.py (post method), and jupyterhub/auth.py (PAM authenticate method). In each case, the raw value of the 'username' field from the POST body was passed directly to self.log.warning() or equivalent without any length validation, matching CWE-400 (Uncontrolled Resource Consumption). The fix in commit d6dc595 introduces a 32-character threshold: usernames exceeding this are truncated in log output to the first 16 characters plus a character count annotation, preventing unbounded log writes. CPE cpe:2.3:a:jupyterhub:jupyterhub:*:*:*:*:*:*:*:* confirms all release lines prior to 5.5.0 are affected.

Know when Jupyterhub 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 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

Login endpoint is network-accessible with no authentication; only availability is impacted via log storage exhaustion, with no confidentiality or integrity effect.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Aug 07, 2026 - 22:17 EUVD

DescriptionCVE.org

JupyterHub is software that allows users to create a multi-user server for Jupyter notebooks. Prior to 5.5.0, invalid input to form-based login authenticators can place an unbounded attacker-controlled username in failed-login logs, allowing an unauthenticated attacker to consume logging and storage resources. This issue is fixed in version 5.5.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular in academic, research, and data science team deployments
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2020-15110 HIGH POC
8.1 Jul 17

In jupyterhub-kubespawner before 0.12, certain usernames will be able to craft particular server names which will grant

CVE-2021-41194 CRITICAL
9.8 Oct 28

FirstUseAuthenticator is a JupyterHub authenticator that helps new users set their password on their first login to Jupy

CVE-2026-33175 HIGH
8.8 Apr 03

Authentication bypass in JupyterHub OAuthenticator <17.4.0 allows authenticated attackers with unverified email addresse

CVE-2021-39160 HIGH
8.8 Aug 25

nbgitpuller is a Jupyter server extension to sync a git repository one-way to a local path. Rated high severity (CVSS 8.

CVE-2020-26261 HIGH
7.9 Dec 09

jupyterhub-systemdspawner enables JupyterHub to spawn single-user notebook servers using systemd. Rated high severity (C

CVE-2021-41247 HIGH
7.5 Nov 04

JupyterHub is an open source multi-user server for Jupyter notebooks. Rated high severity (CVSS 7.5), this vulnerability

CVE-2024-41942 HIGH
7.2 Aug 08

JupyterHub is software that allows one to create a multi-user server for Jupyter notebooks. Rated high severity (CVSS 7.

CVE-2024-28233 MEDIUM
6.1 Mar 27

JupyterHub is an open source multi-user server for Jupyter notebooks. Rated medium severity (CVSS 6.1), this vulnerabili

CVE-2019-10255 MEDIUM
6.1 Mar 28

An Open Redirect vulnerability for all browsers in Jupyter Notebook before 5.7.7 and some browsers (Chrome, Firefox) in

CVE-2026-33709 MEDIUM
5.1 Apr 03

Open redirect vulnerability in JupyterHub prior to version 5.4.4 allows unauthenticated remote attackers to craft malici

CVE-2026-108752 LOW
2.3 Oct 11

JupyterHub deployments through 6.0.1 that run in multi-user mode with the named-server feature enabled allow an authenti

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