Database/AI/ML frameworks & serving
JupyterLab: crafted SVG in the image viewer yields same-origin XSS and code execution on the server
Impact
The image viewer creates a blob URL for an SVG and revokes it too early, so opening that image and then opening it in a new browser tab leaves it running in JupyterLab's own origin. From there the script can drive the Jupyter server API as the logged-in user, which on a notebook server means executing arbitrary code in that user's kernel - i.e. on the GPU node the kernel runs on. This is the standard notebook-server escalation path: an attacker who can place a file in a shared dataset or scratch directory, or hand a user a repo to open, gets code execution on the accelerator node rather than just a browser popup. It needs the user to open the image and then open it in a new tab, which is why the record scores it as requiring user interaction.
Who can reach it
Anyone who can get a crafted SVG into a directory a JupyterLab user browses - a shared /scratch or dataset mount, a cloned repo, an uploaded file. The victim must open the image in the viewer and then open it in a new tab; the attacker needs no JupyterLab account.
What to do
Upgrade JupyterLab to 4.5.10 or 4.6.2 and restart the notebook servers - per-user or per-pod restart of the Jupyter process, which interrupts running kernels but requires no node drain. Rebuild any notebook container images that pin an older JupyterLab.
References
Related entries
- BentoML 1.3.9 (bundled Gradio app, /login endpoint): The /login endpoint of the integrated Gradio app processes eachNCVD-2025-016-bentoml-1-3-9-bundled-gradio-app · BentoML 1.3.9 (bundled Gradio app, /login endpoint)High
- UpTrain: authenticated remote code execution via the checks and metadata parameters on /create_projectCVE-2025-27770 · UpTrain dashboard backend (/create_project endpoint)High
- UpTrain: authenticated remote code execution via the checks and metadata parameters on /add_promptsCVE-2025-27771 · UpTrain dashboard backend (/add_prompts endpoint)High
- UpTrain: authenticated remote code execution via the checks and metadata parameters on /new_runCVE-2025-27772 · UpTrain dashboard backend (/new_run endpoint)High
- joblib: Arbitrary code execution via `eval` on the `pre_dispatch` flag in `Parallel()`CVE-2022-21797 · joblibHigh
- Gradio: Lack of path filteringCVE-2023-34239 · GradioHigh
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.