| Name | CVE-2026-5422 |
| Description | A path traversal vulnerability exists in jupyter-server version 2.17.0 due to an incorrect root directory boundary check in the _get_os_path() function within jupyter_server/services/contents/fileio.py. The check uses startswith(root) without appending a trailing path separator, allowing sibling directories with names starting with the same prefix as root_dir to bypass the check. Additionally, the to_os_path() function in utils.py does not strip ".." from path parts, enabling traversal sequences to bypass the vulnerable check. This vulnerability can lead to unauthorized read/write access to files in sibling directories, potentially exposing sensitive data in shared hosting environments. |
| Source | CVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
Vulnerable and fixed packages
The table below lists information on source packages.
| Source Package | Release | Version | Status |
|---|
| jupyter-server (PTS) | bullseye | 1.2.2-1 | vulnerable |
| bookworm | 1.23.3-1 | vulnerable |
| trixie | 2.15.0-1 | vulnerable |
| forky, sid | 2.20.0-3 | vulnerable |
The information below is based on the following data on fixed versions.
| Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
|---|
| jupyter-server | source | (unstable) | (unfixed) | | | |
Notes
[trixie] - jupyter-server <no-dsa> (Minor issue)
[bookworm] - jupyter-server <postponed> (Minor issue; _get_os_path startswith(root) sibling-prefix traversal present, revisit with next update)
[bullseye] - jupyter-server <postponed> (Minor issue; _get_os_path startswith(root) sibling-prefix traversal present, revisit with next update)
https://huntr.com/bounties/24a36953-6490-466f-8cb2-a90d1ca56e0f
CNA contacted responsible for this CVE entry as this seems to be a duplicate of CVE-2026-35397