CVE-2026-34052

LTI JupyterHub Authenticator: Unbounded Memory Growth via Nonce Storage (Denial of Service)

Published Apr 3, 2026 CVSS 3.1 · 5.9 Medium EPSS < 1% KEV · Not listed
Description
LTI JupyterHub Authenticator is a JupyterHub authenticator for LTI. Prior to version 1.6.3, the LTI 1.1 validator stores OAuth nonces in a class-level dictionary that grows without bounds. Nonces are added before signature validation, so an attacker with knowledge of a valid consumer key can send repeated requests with unique nonces to gradually exhaust server memory, causing a denial of service. This issue has been patched in version 1.6.3.

Analysis

AI-generated

Technical impact

The LTI JupyterHub Authenticator implements LTI 1.1 authentication and stores OAuth nonces in a class‑level dictionary. Each incoming request adds a nonce before signature validation, and the dictionary is never cleared. As a result, an attacker with knowledge of a valid consumer key can repeatedly issue requests using new nonces, causing the dictionary to grow without bounds and exhausting server memory. Once memory limits are reached the JupyterHub service will become unresponsive, effectively denying access to all users.

Affected Systems

JupyterHub developers ship the LTI Authenticator as the "ltiauthenticator" package. Versions prior to 1.6.3 are affected; any deployment using an earlier release with the same nonce handling logic is vulnerable. The patch was released with version 1.6.3, so systems running that or newer versions are not susceptible.

Risk and Exploitability

The CVSS score of 5.9 reflects a moderate severity. EPSS indicates a shooting‑star probability of less than 1 percent, and the vulnerability is not listed in the KEV catalog, suggesting exploitation opportunities are currently limited. The likely attack vector is remote, via crafted HTTP requests sent to the authenticator endpoint, and requires the attacker to possess a valid consumer key. Because the vulnerability only leads to a service denial rather than code execution, the impact is limited to availability degradation.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade LTI JupyterHub Authenticator to version 1.6.3 or later

Generated by OpenCVE AI on April 13, 2026 at 18:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-8mxq-7xr7-2fxj LTI JupyterHub Authenticator: Unbounded Memory Growth via Nonce Storage (Denial of Service)
History
Type Values Removed Values Added
First Time appeared Jupyter
Jupyter lti Jupyterhub Authenticator
CPEs cpe:2.3:a:jupyter:lti_jupyterhub_authenticator:*:*:*:*:*:*:*:*
Vendors & Products Jupyter
Jupyter lti Jupyterhub Authenticator
Type Values Removed Values Added
First Time appeared Jupyterhub
Jupyterhub ltiauthenticator
Vendors & Products Jupyterhub
Jupyterhub ltiauthenticator
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description LTI JupyterHub Authenticator is a JupyterHub authenticator for LTI. Prior to version 1.6.3, the LTI 1.1 validator stores OAuth nonces in a class-level dictionary that grows without bounds. Nonces are added before signature validation, so an attacker with knowledge of a valid consumer key can send repeated requests with unique nonces to gradually exhaust server memory, causing a denial of service. This issue has been patched in version 1.6.3.
Title LTI JupyterHub Authenticator: Unbounded Memory Growth via Nonce Storage (Denial of Service)
Weaknesses CWE-401
CWE-770
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses
  • CWE-401

    Missing Release of Memory after Effective Lifetime

  • CWE-770

    Allocation of Resources Without Limits or Throttling

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 6, 2026, 6:59 PM
Reserved
Mar 25, 2026, 3:29 PM
Status
Analyzed
Published
Apr 3, 2026, 11:17 PM
Modified
Jul 24, 2026, 10:10 PM