{"id":"CVE-2020-36191","aliases":["BIT-jupyterhub-2020-36191","DEBIAN-CVE-2020-36191","EUVD-2021-0106","GHSA-7xx3-qp5w-fw96","PYSEC-2021-67","UBUNTU-CVE-2020-36191"],"status":"published","title":"Cross-Site Request Forgery in JupyterHub","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","severity":{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:H/A:N","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.0051,"percentile":0.43779,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-352"],"published":"2021-01-13T03:36:09Z","modified":"2026-10-26T12:02:02Z","fixes":[{"ecosystem":"PyPI","package":"jupyterhub","fixed_in":["1.2.0b1"],"sources":["ghsa","osv"]},{"ecosystem":"Bitnami","package":"jupyterhub","fixed_in":["1.1.1"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"jupyterhub","fixed_in":["3.0.0+ds1-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"jupyterhub","fixed_in":["3.0.0+ds1-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"jupyterhub","fixed_in":["3.0.0+ds1-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0b1"}]}]},{"source":"osv","ecosystem":"Bitnami","package":"jupyterhub","ranges":[{"type":"SEMVER","events":[{"introduced":"1.1.0"},{"fixed":"1.1.1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.0.0+ds1-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.0.0+ds1-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.0.0+ds1-1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0b1"}]}],"versions":["0.1.0","0.2.0","0.3.0","0.4.0","0.4.1","0.5.0","0.6.0","0.6.1","0.7.0","0.7.0b1","0.7.1","0.7.2","0.8.0","0.8.0b1","0.8.0b2","0.8.0b3","0.8.0b4","0.8.0b5","0.8.0rc1","0.8.0rc2","0.8.1","0.9.0","0.9.0b1","0.9.0b2","0.9.0b3","0.9.0rc1","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","1.0.0","1.0.0b1","1.0.0b2","1.1.0","1.1.0b1"]},{"source":"osv","ecosystem":"PyPI","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.0b1"}]}],"versions":["0.1.0","0.2.0","0.3.0","0.4.0","0.4.1","0.5.0","0.6.0","0.6.1","0.7.0b1","0.7.0","0.7.1","0.7.2","0.8.0b1","0.8.0b2","0.8.0b3","0.8.0b4","0.8.0b5","0.8.0rc1","0.8.0rc2","0.8.0","0.8.1","0.9.0b1","0.9.0b2","0.9.0b3","0.9.0rc1","0.9.0","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","1.0.0b1","1.0.0b2","1.0.0","1.1.0b1","1.1.0"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0.0+ds1-1","2.0.0+ds1-2"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.0+ds1-1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.2.1+ds1-2","5.2.1+ds1-3","5.2.1+ds1-4"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.2.1+ds1-4","5.2.1+ds1-5"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"jupyterhub","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.2.1+ds1-4"]}],"products":[{"vendor":"jupyter","product":"jupyterhub"}],"references":[{"url":"https://github.com/jupyterhub/jupyterhub/issues/3304","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","advisory","evidence","web","report"]},{"url":"https://github.com/jupyterhub/jupyterhub/releases","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-36191","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-7xx3-qp5w-fw96","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/jupyterhub/PYSEC-2021-67.yaml","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2020-36191","tags":["advisory"]},{"url":"https://github.com/jupyterhub/jupyterhub","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2020-36191","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-36191","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2020-36191","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2021-01-13T03:36:09Z","modified":"2024-08-04T17:23:09.621Z","updated_at":"2026-11-02T14:35:55.128961Z"}],"euvd":[{"id":"EUVD-2021-0106","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2021-01-13T03:36:09Z","modified":"2024-08-04T17:23:09Z","updated_at":"2026-11-03T03:07:03.484914Z"}],"ghsa":[{"id":"GHSA-7xx3-qp5w-fw96","title":"Cross-Site Request Forgery in JupyterHub","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an `_xsrf` field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2022-05-24T17:38:59Z","modified":"2024-09-24T21:00:22Z","cvss":[{"version":"4.0","score":6.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"medium"},{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T14:38:06.29677Z"}],"nvd":[{"id":"CVE-2020-36191","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2021-01-13T04:15:13.073Z","modified":"2026-06-17T03:14:58.28Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:H/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":3.5,"vector":"AV:N/AC:M/Au:S/C:N/I:P/A:N","level":"low","assessor":"primary"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T14:06:28.892872Z"}],"osv":[{"id":"CVE-2020-36191","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2021-01-13T04:15:13.073Z","modified":"2026-10-20T10:54:20.471084353Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:16.612899Z"},{"id":"DEBIAN-CVE-2020-36191","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2021-01-13T04:15:13.073Z","modified":"2026-10-26T12:02:02.28748035Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:34.019707Z"},{"id":"GHSA-7xx3-qp5w-fw96","title":"Cross-Site Request Forgery in JupyterHub","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an `_xsrf` field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2022-05-24T17:38:59Z","modified":"2024-09-24T21:23:43.200029Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:H/A:N","level":"medium"},{"version":"4.0","score":6.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-352"],"updated_at":"2026-11-02T15:46:41.732368Z"},{"id":"UBUNTU-CVE-2020-36191","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2021-01-13T04:15:00Z","modified":"2026-10-17T12:56:13.985012426Z","cvss":[{"version":"3.1","score":4.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:54:25.179924Z"},{"id":"BIT-jupyterhub-2020-36191","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2024-03-06T10:54:10.265Z","modified":"2026-09-08T08:48:23.770110968Z","updated_at":"2026-11-02T15:28:31.782692Z"},{"id":"PYSEC-2021-67","description":"JupyterHub 1.1.0 allows CSRF in the admin panel via a request that lacks an _xsrf field, as demonstrated by a /hub/api/user request (to add or remove a user account).","status":"published","published":"2021-01-13T04:15:00Z","modified":"2023-12-06T01:00:33.895324Z","updated_at":"2026-11-02T15:52:53.119977Z"}]}}
