GHSA-m68r-v472-jgq9

Suggest an improvement
Source
https://github.com/advisories/GHSA-m68r-v472-jgq9
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-m68r-v472-jgq9/GHSA-m68r-v472-jgq9.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-m68r-v472-jgq9
Aliases
Downstream
CGA (8)
Published
2026-05-05T18:10:58Z
Modified
2026-09-10T03:51:06Z
Severity
  • 5.4 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L CVSS Calculator
Summary
JupyterHub has cross-origin form POSTs bypass XSRF (CWE-352)
Details

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.

Database specific
{
    "cwe_ids":  [
        "CWE-352"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-05-05T18:10:58Z",
    "nvd_published_at":  "2026-05-22T21:16:43Z",
    "severity":  "MODERATE"
}
References

Affected packages

PyPI / jupyterhub

Package

Name
jupyterhub
View open source insights on deps.dev
Purl
pkg:pypi/jupyterhub

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.1.0
Fixed
5.4.5

Affected versions

4.*
4.1.0
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
5.*
5.0.0b1
5.0.0b2
5.0.0
5.1.0
5.2.0
5.2.1
5.3.0rc0
5.3.0
5.4.0
5.4.1
5.4.2
5.4.3
5.4.4

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/05/GHSA-m68r-v472-jgq9/GHSA-m68r-v472-jgq9.json"