Executive brief
A vulnerability in the JupyterHub LTI Authenticator, a tool used to integrate JupyterHub with learning management systems, can allow an attacker to crash the server. By sending a large volume of specific requests, an attacker can exhaust the server's memory, leading to a denial of service. This disrupts access for all users and may require a manual restart of the service to restore operations.
Technical details
The LTI 1.1 validator in JupyterHub's ltiauthenticator package fails to limit the growth of its OAuth nonce storage. Nonces are stored in a class-level dictionary before signature validation occurs. An attacker who knows a valid consumer key can exploit this by sending a high volume of requests with unique nonces. Because these nonces are never cleared and are recorded regardless of whether the request signature is eventually validated, the dictionary grows indefinitely until the host system runs out of memory (CWE-401, CWE-770). This results in a Denial of Service (DoS). The issue is fixed in version 1.6.3.
Affected products
- JupyterHub ltiauthenticator < 1.6.3
Timeline
- 2026-03-26: patched: Version 1.6.3 released
- 2026-04-02: advisory: GitHub Security Advisory published
- 2026-04-03: disclosed: CVE published to NVD