JupyterHub's LTI13Authenticator: JWT signature not validated
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-347.
Summary
`jupyterhub-ltiauthenticator` is a JupyterHub authenticator for learning tools interoperability (LTI). LTI13Authenticator that was introduced in `jupyterhub-ltiauthenticator` 1.3.0 wasn't validating JWT signatures. This is believed to allow the LTI13Authenticator to authorize a forged request. Only users that has configured a JupyterHub installation to use the authenticator class `LTI13Authenticator` are affected. `jupyterhub-ltiauthenticator` version 1.4.0 removes LTI13Authenticator to address the issue. No known workarounds are available.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| jupyterhub | ltiauthenticator | = 1.3.0 | — | No fix listed | CNA |
| — | jupyterhub-ltiauthenticator (PyPI) | 1.3.0 to before 1.4.0 | 1.4.0 | Patch available | GHSA-mcgx-2gcr-p3hp |
- ltiauthenticator Vendorjupyterhub Affected = 1.3.0 Fixed in — No fix listed CNA
- jupyterhub-ltiauthenticator (PyPI) Vendor— Affected 1.3.0 to before 1.4.0 Fixed in 1.4.0 Patch available GHSA-mcgx-2gcr-p3hp
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:jupyter:lti_jupyterhub_authenticator:1.3.0:*:*:*:*:*:*:* | 1.3.0 | Vulnerable | jupyterlab |
- cpe:2.3:a:jupyter:lti_jupyterhub_authenticator:1.3.0:*:*:*:*:*:*:* Versions 1.3.0 Vulnerable ·jupyterlab
Remediation
- Fix · GHSA-mcgx-2gcr-p3hp jupyterhub-ltiauthenticator (PyPI) Fixed in 1.4.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2023-25574
- 2026-10-03 Alias added: GHSA-mcgx-2gcr-p3hp
References
Advisory 2
Other 4
- https://github.com/jupyterhub/ltiauthenticator/blob/3feec2e81b9d3b0ad6b58ab4226af640833039f3/ltiauthenticator/lti13/validator.py#L122-L164
- https://github.com/jupyterhub/ltiauthenticator/blob/main/CHANGELOG.md#140---2023-03-01
- https://github.com/jupyterhub/ltiauthenticator
- https://github.com/pypa/advisory-database/tree/main/vulns/jupyterhub-ltiauthenticator/PYSEC-2025-120.yaml
More jupyterhub vulnerabilities
- TI-2025-23499 Jupyter Remote Desktop Proxy makes TigerVNC accessible via the network and not just via a UNIX socket as intended CVSS 4.0CRITICAL 9.0
- TI-2021-16545 Remote code execution in Binderhub CVSS 3.1CRITICAL 9.8
- TI-2021-18033 Improper Access Control in jupyterhub-firstuseauthenticator CVSS 3.1CRITICAL 9.8
- TI-2021-16546 Code injection in nbgitpuller CVSS 3.1CRITICAL 9.6
- TI-2024-18755 Jupyter Server Proxy's Websocket Proxying does not require authentication CVSS 3.1CRITICAL 9.8
- TI-2024-23295 Jupyter Server Proxy has a reflected XSS issue in host parameter CVSS 3.1CRITICAL 9.7
Sources
- CVE-2023-25574 · CVE Program
- CVE-2023-25574 · NVD
- FIRST EPSS
- GHSA-mcgx-2gcr-p3hp · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences