Skip to content
JupyterGHSA-m68r-v472-jgq9

JupyterHub has cross-origin form POSTs bypass XSRF (CWE-352)

Medium5.4CVE-2026-40864 · Published May 5, 2026 · updated Sep 10, 2026

GitHub advisory

Affected versions

PackageAffectedFixed in
jupyterhub
PyPI
>= 4.1.0, < 5.4.55.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

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.