GitHub Advisoryadvisory · PyPI
GHSA-m68r-v472-jgq9 JupyterHub has cross-origin form POSTs bypass XSRF (CWE-352)
MEDIUM
Official page ↗
- Aliases
- CVE-2026-40864
- Ecosystem
- PyPI
- Packages
- jupyterhub
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
- Weaknesses
- CWE-352
- Reviewed
- 2026-05-05
Affected packages
• PyPI jupyterhub: >= 4.1.0, < 5.4.5 → fixed in 5.4.5
Description
Summary
JupyterHub's XSRF protection (updated in 4.1.0) inappropriately treated requests with `Sec-Fetch-Mode: no-cors` as same-origin requests, which they are not, bypassing XSRF checks. The JSON API is not affected, only HTTP form endpoints, such as `/hub/spawn` and `/hub/accept-share`, meaning attackers could trigger server spawn (but not access the server) and if the attacker is a JupyterHub user permitted to share access to their server, cause a user to accept a share and have access to the attacker's server.
Patches
Upgrade to JupyterHub 5.4.5.
Mitigations
If a reverse proxy is in use, drop requests to JupyterHub with `Sec-Fetch-Mode: no-cors`.
Related
Alias · CVE (1)
- CVE-2026-40864 JupyterHub is software that allows users to create a multi-user server for Jupyter notebooks. vulnerability
Weakness · CWE (1)
- CWE-352 Cross-Site Request Forgery weakness