CVE-2024-28233
XSS in JupyterHub via Self-XSS leveraged by Cookie Tossing
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.1
XSS in JupyterHub via Self-XSS leveraged by Cookie Tossing
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
- Record
CVE-2024-28233- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-79, CWE-352, CWE-565
- Updated
- 2026-11-02
EUVDEUVD-2024-0861
8.1
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
- Record
EUVD-2024-0861- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-7r3h-4ph8-w38g
8.1
Cross site scripting (XSS) in JupyterHub via Self-XSS leveraged by Cookie Tossing
Impact
Affected configurations:
- Single-origin JupyterHub deployments
- JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server.
By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve the following:
- Full access to JupyterHub API and user's single-user server, e.g.
- Create and exfiltrate an API Token
- Exfiltrate all files hosted on the user's single-user server: notebooks, images, etc.
- Install malicious extensions. They can be used as a backdoor to silently regain access to victim's session anytime.
Patches
To prevent cookie-tossing:
- Upgrade to JupyterHub 4.1 (both hub and user environment)
- enable per-user domains via
c.JupyterHub.subdomain_host = "https://mydomain.example.org" - set
c.JupyterHub.cookie_host_prefix_enabled = Trueto enable domain-locked cookies
or, if available (applies to earlier JupyterHub versions):
- deploy jupyterhub on its own domain, not shared with any other services
- enable per-user domains via
c.JupyterHub.subdomain_host = "https://mydomain.example.org"
- Record
GHSA-7r3h-4ph8-w38g- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-79, CWE-352, CWE-565
- Updated
- 2026-11-02
NVD
8.1
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
- Record
CVE-2024-28233- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-79, CWE-352, CWE-565
- Updated
- 2026-11-02
OSV
8.1
XSS in JupyterHub via Self-XSS leveraged by Cookie Tossing
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
- Record
CVE-2024-28233- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-352, CWE-565, CWE-79
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2024-28233
6.1
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
- Record
DEBIAN-CVE-2024-28233- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
Show 4 moreShow less
OSVGHSA-7r3h-4ph8-w38g
8.1
Cross site scripting (XSS) in JupyterHub via Self-XSS leveraged by Cookie Tossing
Impact
Affected configurations:
- Single-origin JupyterHub deployments
- JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server.
By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve the following:
- Full access to JupyterHub API and user's single-user server, e.g.
- Create and exfiltrate an API Token
- Exfiltrate all files hosted on the user's single-user server: notebooks, images, etc.
- Install malicious extensions. They can be used as a backdoor to silently regain access to victim's session anytime.
Patches
To prevent cookie-tossing:
- Upgrade to JupyterHub 4.1 (both hub and user environment)
- enable per-user domains via
c.JupyterHub.subdomain_host = "https://mydomain.example.org" - set
c.JupyterHub.cookie_host_prefix_enabled = Trueto enable domain-locked cookies
or, if available (applies to earlier JupyterHub versions):
- deploy jupyterhub on its own domain, not shared with any other services
- enable per-user domains via
c.JupyterHub.subdomain_host = "https://mydomain.example.org"
- Record
GHSA-7r3h-4ph8-w38g- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-352, CWE-565, CWE-79
- Updated
- 2026-11-02
OSVPYSEC-2026-1480
8.1
Cross site scripting (XSS) in JupyterHub via Self-XSS leveraged by Cookie Tossing
Impact
Affected configurations:
- Single-origin JupyterHub deployments
- JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server.
By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve the following:
- Full access to JupyterHub API and user's single-user server, e.g.
- Create and exfiltrate an API Token
- Exfiltrate all files hosted on the user's single-user server: notebooks, images, etc.
- Install malicious extensions. They can be used as a backdoor to silently regain access to victim's session anytime.
Patches
To prevent cookie-tossing:
- Upgrade to JupyterHub 4.1 (both hub and user environment)
- enable per-user domains via
c.JupyterHub.subdomain_host = "https://mydomain.example.org" - set
c.JupyterHub.cookie_host_prefix_enabled = Trueto enable domain-locked cookies
or, if available (applies to earlier JupyterHub versions):
- deploy jupyterhub on its own domain, not shared with any other services
- enable per-user domains via
c.JupyterHub.subdomain_host = "https://mydomain.example.org"
- Record
PYSEC-2026-1480- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2024-28233
8.1
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
- Record
UBUNTU-CVE-2024-28233- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVBIT-jupyterhub-2024-28233 No score
XSS in JupyterHub via Self-XSS leveraged by Cookie Tossing
JupyterHub is an open source multi-user server for Jupyter notebooks. By tricking a user into visiting a malicious subdomain, the attacker can achieve an XSS directly affecting the former's session. More precisely, in the context of JupyterHub, this XSS could achieve full access to JupyterHub API and user's single-user server. The affected configurations are single-origin JupyterHub deployments and JupyterHub deployments with user-controlled applications running on subdomains or peer subdomains of either the Hub or a single-user server. This vulnerability is fixed in 4.1.0.
- Record
BIT-jupyterhub-2024-28233- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
jupyterhubPyPI |
before 4.1.0 | 4.1.0 |
jupyterhubBitnami |
before 4.1.0 | 4.1.0 |
jupyterhubDebian:12 |
All versions, plus listed versions 3.0.0+ds1-15.0.0+ds1-15.0.0+ds1-25.0.0+ds1-35.0.0+ds1-4 Show 5 moreShow less5.2.1+ds1-15.2.1+ds1-25.2.1+ds1-35.2.1+ds1-45.2.1+ds1-5 |
None known |
jupyterhubDebian:13 |
before 5.0.0+ds1-1 | 5.0.0+ds1-1 |
jupyterhubDebian:14 |
before 5.0.0+ds1-1 | 5.0.0+ds1-1 |
jupyterhubPyPI |
before 4.1.0, plus listed versions 0.1.00.2.00.3.00.4.00.4.1 Show 45 moreShow less0.5.00.6.00.6.10.7.00.7.0b10.7.10.7.20.8.00.8.0b10.8.0b20.8.0b30.8.0b40.8.0b50.8.0rc10.8.0rc20.8.10.9.00.9.0b10.9.0b20.9.0b30.9.0rc10.9.10.9.20.9.30.9.40.9.50.9.61.0.01.0.0b11.0.0b21.1.01.1.0b11.2.01.2.0b11.2.11.2.21.3.01.4.01.4.11.4.21.5.01.5.12.0.02.0.0b12.0.0b2 |
4.1.0 |
jupyterhubUbuntu:22.04:LTS |
All versions, plus listed versions 2.0.0+ds1-12.0.0+ds1-2 |
None known |
jupyterhubUbuntu:24.04:LTS |
All versions, plus listed versions 3.0.0+ds1-1 |
None known |
jupyterhubUbuntu:25.10 |
All versions, plus listed versions 5.2.1+ds1-25.2.1+ds1-35.2.1+ds1-4 |
None known |
jupyterhubUbuntu:26.10 |
All versions, plus listed versions 5.2.1+ds1-45.2.1+ds1-5 |
None known |
jupyterhubUbuntu:26.04:LTS |
All versions, plus listed versions 5.2.1+ds1-4 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, published | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-28233 is a high vulnerability (CVSS 8.1) in Jupyter Jupyterhub, published March 27, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.33%, the 26th percentile. Fixed in jupyterhub 4.1.0.
References
github.com/jupyterhub/jupyterhub/security/advisories/GHSA-7r3h-4ph8-w38g
github.com/jupyterhub/jupyterhub/commit/e2798a088f5ad45340fe79cdf1386198e664f77f
nvd.nist.gov/vuln/detail/CVE-2024-28233
github.com/advisories/GHSA-7r3h-4ph8-w38g
github.com/CVEProject/cvelistV5/tree/main/cves/2024/28xxx/CVE-2024-28233.json
security-tracker.debian.org/tracker/CVE-2024-28233
Left out here: 24 versions. The JSON record has them.