JupyterHub has cross-origin form POSTs bypass XSRF (CWE-352)
Medium5.4CVE-2026-40864 · Published May 5, 2026 · updated Sep 10, 2026
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| jupyterhub PyPI | >= 4.1.0, < 5.4.5 | 5.4.5 |
Details and references
## 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`.
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-352
- Also known as
- BIT-jupyterhub-2026-40864, CVE-2026-40864, PYSEC-2026-2189
More Jupyter advisories
All Jupyter| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| May 5 | Jupyter Server has an open redirection vulnerability in `next` query parameter CVE-2025-61669Mediumfixed in 2.18.0 | Medium | 2.18.0 |
| May 5 | Jupyter Server: Path Traversal via incorrect startswith() root directory check allows access to sibling directories CVE-2026-35397High7.1fixed in 2.18.0 | High7.1 | 2.18.0 |
| May 5 | Jupyter Server has a CORS Origin Validation Bypass via `re.match()` in `allow_origin_pat` CVE-2026-40110Highfixed in 2.18.0 | High | 2.18.0 |
| May 5 | Jupyter Server's Authentication Cookies Remain Valid After Password Reset and Server Restart CVE-2026-40934High6.8fixed in 2.18.0 | High6.8 | 2.18.0 |
| May 5 | JupyterLab has an Extension Manager API/GUI Policy Discrepancy, allowing 3rd party (malicious) extensions install via POST request CVE-2026-42266High8.8fixed in 4.5.7 | High8.8 | 4.5.7 |
| May 6 | JupyterLab's command linker attributes in HTML enable one-click command execution from untrusted content CVE-2026-42557High9.6fixed in 4.5.7, 7.5.6 | High9.6 | 4.5.7, 7.5.6 |