---
id: CVE-2026-34052
aliases:
  - GHSA-8mxq-7xr7-2fxj
  - PYSEC-2026-2533
title: >-
  LTI JupyterHub Authenticator: Unbounded Memory Growth via Nonce Storage
  (Denial of Service)
summary: >-
  LTI JupyterHub Authenticator: Unbounded Memory Growth via Nonce Storage
  (Denial of Service)
severity: medium
cvss: 5.9
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'
vendor: jupyterhub-ltiauthenticator
product: jupyterhub-ltiauthenticator
ecosystem: pip
affected:
  - jupyterhub-ltiauthenticator < 1.6.3
patched:
  - jupyterhub-ltiauthenticator 1.6.3
published: '2026-04-03'
updated: '2026-09-10'
sourceUpdated: '2026-09-10T03:51:01.296535015Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-8mxq-7xr7-2fxj'
references:
  - url: >-
      https://github.com/jupyterhub/ltiauthenticator/security/advisories/GHSA-8mxq-7xr7-2fxj
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-34052'
  - url: 'https://github.com/jupyterhub/ltiauthenticator'
  - url: 'https://github.com/jupyterhub/ltiauthenticator/releases/tag/1.6.3'
tags:
  - osv
  - pip
epss: 0.00329
epssPercentile: 0.26239
ingestedAt: '2026-07-13T18:57:55.196Z'
---

## Overview

## Summary

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.

## Patches

- upgrade jupyterhub-litauthenticator to 1.6.3

## Affected packages

- `jupyterhub-ltiauthenticator < 1.6.3`

## Remediation

Upgrade to a patched release:

- `jupyterhub-ltiauthenticator 1.6.3`
