{"items":[{"id":"NVI-00013981","kind":"vulnerability","title":"Jupyter Server: Stored XSS in `NbconvertFileHandler` / `NbconvertPostHandler` via missing `sandbox` CSP ","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-fcw5-x6j4-ccmp","CVE-2026-44727"],"plain_summary":"GitHub lists this reviewed advisory for jupyter-server. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-2c816f9621a1ee4a6bfa3d4f0d01eb1e"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-08-28T18:31:11.000Z","value":"5.4 critical","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-2c816f9621a1ee4a6bfa3d4f0d01eb1e"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-2c816f9621a1ee4a6bfa3d4f0d01eb1e","url":"https://github.com/advisories/GHSA-fcw5-x6j4-ccmp","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-fcw5-x6j4-ccmp","publisher":"GitHub Advisory Database","observed_at":"2026-11-02T09:56:23.004Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-2c816f9621a1ee4a6bfa3d4f0d01eb1e"],"technology":"jupyter-server","known_exclusions":[],"conditions_summary":"The nbconvert HTTP handlers in jupyter_server render user-authored notebook HTML under the Jupyter origin without a sandbox directive in their `Content-Security-Policy`. \n\nCombined with `nbconvert.HTMLExporter`'s default non-sanitizing behavior, a notebook carrying an HTML payload in a display_data output triggers stored XSS with cookie access, full /api/* authority, and kernel RCE.\n\n### Impact\n\nAn authenticated victim who navigates to `/nbconvert/html/` containing attacker-authored output can have their token exfiltrated to another domain because it is executed in the Jupyter origin.\n\n### Patches\n\nFixed in v2.20.0, commit 6cbee8d\n\n\n### Workarounds\n\nFor deployments where editing the installed jupyter_server is impractical (containerized builds, read-only images), adding this to jupyter_server_config.py has the same effect as the patch above without touching source files:\n\n```\nimport jupyter_server.nbconvert.handlers as _nb\n\ndef _csp(self):\n    return super(type(self), self).content_security_policy + \"; sandbox allow-scripts\"\n\n_nb.NbconvertFileHandler.content_security_policy = p","public_affected_ranges":["<= 2.19.0"]}],"null_published_at":"2026-11-02T10:00:37.194Z","source_updated_at":"2026-08-28T18:31:11.000Z","source_disclosed_at":"2026-06-18T15:04:07.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-02T09:56:23.004Z"}],"next_cursor":null,"snapshot_revision":"42594"}