Résumé
Jupyter Server before 2.20.0 has a stored cross-site scripting flaw (CVE-2026-44727). The `NbconvertFileHandler` and `NbconvertPostHandler` served converted notebook output without a sandboxing Content-Security-Policy, so malicious HTML or JavaScript embedded in a notebook executes in the victim's browser within the Jupyter origin. Opening or being shown a crafted notebook can hijack a user's Jupyter session.
Comment le corriger
- Upgrade `jupyter-server` to 2.20.0 or later, which restores the sandbox Content-Security-Policy on the nbconvert handlers.
- Until you upgrade, treat notebooks from untrusted sources as hostile and do not open or render them in a shared Jupyter instance.
Comment l’éviter dans votre code
- Render untrusted, user-controlled content under a strict sandboxing Content-Security-Policy, and serve downloadable HTML from a separate origin where possible.
- Sanitize or escape document and notebook output that can contain HTML or JavaScript before display.
- Keep notebook and data-science tooling patched; these tools routinely render untrusted input and are a recurring XSS surface.
Références
Vulnérabilités liées
Tout Supply chain →- MEDIUMCVE-2026-63670
ApostropheCMS: Mutation-XSS / allowedTags bypass via literal `</textarea/>` solidus close
- MEDIUMCVE-2026-73295
Material for MkDocs: DOM XSS in search suggestions via query parameter
- HIGHGHSA-99rq-75j6-5j9f
SiYuan: Stored and reflected XSS in SiYuan through an SVG sanitizer bypass
- MEDIUMCVE-2026-68921
DiceBear: SVG injection via the unescaped rotate option in @dicebear/core (and fontSize/fontWeight in @dicebear/initials)
- MEDIUMCVE-2026-82396
Sulu: Stored XSS via media download inline-disposition override
- MEDIUMGHSA-cp6q-959q-f8rh
Tiptap: mergeAttributes() turns an own __proto__ key into inherited executable DOM attributes