{"schemaVersion":3,"id":"CVE-2024-28233","aliases":["GHSA-7r3h-4ph8-w38g","BIT-jupyterhub-2024-28233","PYSEC-2026-1480","UBUNTU-CVE-2024-28233","DEBIAN-CVE-2024-28233"],"status":"published","duplicateOf":null,"title":null,"description":"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.","dates":{"published":"2024-03-27T18:16:24.308Z","modified":"2024-08-15T14:46:24.624Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.1,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":8.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Pypi","score":8.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N","exploitability":7.2,"impact":8.7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Ubuntu","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":7.2,"impact":4.5,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Debian","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":7.2,"impact":4.5,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00329,"percentile":0.24692,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.00329},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00329,"percentile":0.24692}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00329,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00329,"percentile":0.24692}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","description":"The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-352","name":"Cross-Site Request Forgery (CSRF)","description":"The web application does not, or cannot, sufficiently verify whether a request was intentionally provided by the user who sent the request, which could have originated from an unauthorized actor.","type":"weakness","status":"Stable","abstraction":"Compound","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/352.html"},{"id":"CWE-565","name":"Reliance on Cookies without Validation and Integrity Checking","description":"The product relies on the existence or values of cookies when performing security-critical operations, but it does not properly ensure that the setting is valid for the associated user.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/565.html"}],"affected":[{"vendor":"debian","product":"jupyterhub","name":"jupyterhub","label":"jupyterhub","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/jupyterhub","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 5.0.0+ds1-1","noFixRecorded":false,"fixedIn":null}],"versionsText":"All versions (No fix recorded) | < 5.0.0+ds1-1","eol":null,"hubHref":null},{"vendor":"ubuntu","product":"jupyterhub","name":"jupyterhub","label":"jupyterhub","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/jupyterhub","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"jupyter","product":"jupyterhub","name":"jupyterhub","label":"jupyterhub","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 4.1.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.1.0","eol":null,"hubHref":"/vendor/jupyter/jupyterhub"},{"vendor":"jupyterhub","product":"jupyterhub","name":"jupyterhub","label":"jupyterhub","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 4.1.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.1.0","eol":null,"hubHref":"/vendor/jupyterhub/jupyterhub"},{"vendor":"PyPI","product":"jupyterhub","name":"jupyterhub","label":"jupyterhub","ecosystem":"PyPI","cpePart":null,"purl":"pkg:pypi/jupyterhub","purlType":"pypi","versions":[{"text":"< 4.1.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 4.1.0","eol":null,"hubHref":null}],"affectedCount":5,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/jupyterhub/jupyterhub/security/advisories/GHSA-7r3h-4ph8-w38g","label":"github.com/jupyterhub/jupyterhub/security/advisories/GHSA-7r3h-4ph8-w38g","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","REPORT","Third Party Advisory"]},{"url":"https://github.com/jupyterhub/jupyterhub/commit/e2798a088f5ad45340fe79cdf1386198e664f77f","label":"github.com/jupyterhub/jupyterhub/commit/e2798a088f5ad45340fe79cdf1386198e664f77f","hostname":"github.com","tags":["X Refsource MISC","WEB","FIX","REPORT","Patch"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-28233","label":"nvd.nist.gov/vuln/detail/CVE-2024-28233","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/jupyterhub/jupyterhub","label":"github.com/jupyterhub/jupyterhub","hostname":"github.com","tags":["PACKAGE"]},{"url":"https://pypi.org/project/jupyterhub","label":"pypi.org/project/jupyterhub","hostname":"pypi.org","tags":["PACKAGE"]},{"url":"https://github.com/advisories/GHSA-7r3h-4ph8-w38g","label":"github.com/advisories/GHSA-7r3h-4ph8-w38g","hostname":"github.com","tags":["Advisory"]},{"url":"https://ubuntu.com/security/CVE-2024-28233","label":"ubuntu.com/security/CVE-2024-28233","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2024-28233","label":"www.cve.org/CVERecord?id=CVE-2024-28233","hostname":"www.cve.org","tags":["REPORT"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2024-28233","label":"security-tracker.debian.org/tracker/CVE-2024-28233","hostname":"security-tracker.debian.org","tags":["Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2024-03-27T18:16:24.308Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2024-08-15T14:46:24.624Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":32,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T04:11:56.643Z","stale":false,"partial":false}}