CVE-2026-5422
CVE-2026-5422 · Path Traversal in jupyter/jupyter
This page contains facts from public vulnerability sources. Check the original advisory before updating.
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.
CVSS 6.8 · Medium · EPSS 0.5% · Fix available
- Published
- Updated
Affected products and versions
jupyter/jupyter
- Versions
- ≥ unspecified, ≤ latest: Affected (custom)
No fix published
jupyter-server Debian:12
- Versions
- 1.23.3-1
- 1.23.3-2
- 2.14.0-1
- 2.14.2-1
- 2.14.2-2
- 2.14.2-3
- 2.14.2-4
- 2.14.2-5
- 2.15.0-1
- 2.17.0-1
- 2.20.0-1
- 2.20.0-2
- 2.20.0-3
- 2.9.1-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
jupyter-server Debian:13
- Versions
- 2.15.0-1
- 2.17.0-1
- 2.20.0-1
- 2.20.0-2
- 2.20.0-3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
jupyter-server Debian:14
- Versions
- 2.15.0-1
- 2.17.0-1
- 2.20.0-1
- 2.20.0-2
- 2.20.0-3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
jupyter-server PyPI
- Versions
- 0.0.0
- 0.0.1
- 0.0.2
- 0.0.3
- 0.0.4
- 0.0.5
- 0.1.0
- 0.1.1
- 0.2.0
- 0.2.1
- 0.3.0
- 1.0.0
- 1.0.0rc0
- 1.0.0rc1
- 1.0.0rc10
- 1.0.0rc11
- 1.0.0rc12
- 1.0.0rc13
- 1.0.0rc14
- 1.0.0rc15
- 1.0.0rc16
- 1.0.0rc2
- 1.0.0rc3
- 1.0.0rc4
- 1.0.0rc5
- 1.0.0rc6
- 1.0.0rc7
- 1.0.0rc8
- 1.0.0rc9
- 1.0.1
- 1.0.10
- 1.0.11
- 1.0.2
- 1.0.3
- 1.0.4
- 1.0.5
- 1.0.6
- 1.0.7
- 1.0.8
- 1.0.9
- 1.1.0
- 1.1.1
- 1.1.2
- 1.1.3
- 1.1.4
- 1.10.0
- 1.10.1
- 1.10.2
- 1.11.0
- 1.11.1
- 1.11.2
- 1.12.0
- 1.12.1
- 1.13.0
- 1.13.1
- 1.13.2
- 1.13.3
- 1.13.4
- 1.13.5
- 1.15.0
- 1.15.1
- 1.15.2
- 1.15.3
- 1.15.4
- 1.15.5
- 1.15.6
- 1.16.0
- 1.17.0
- 1.17.1
- 1.18.0
- 1.18.1
- 1.19.0
- 1.19.1
- 1.2.0
- 1.2.1
- 1.2.2
- 1.2.3
- 1.21.0
- 1.23.0
- 1.23.1
- 1.23.2
- 1.23.3
- 1.23.4
- 1.23.5
- 1.23.6
- 1.24.0
- 1.3.0
- 1.4.0
- 1.4.1
- 1.5.0
- 1.5.1
- 1.6.0
- 1.6.1
- 1.6.2
- 1.6.3
- 1.6.4
- 1.7.0
- 1.7.0a1
- 1.7.0a2
- 1.8.0
- 1.9.0
- 2.0.0
- 2.0.0a0
- 2.0.0a1
- 2.0.0a2
- 2.0.0b0
- 2.0.0b1
- 2.0.0rc0
- 2.0.0rc1
- 2.0.0rc2
- 2.0.0rc3
- 2.0.0rc4
- 2.0.0rc5
- 2.0.0rc6
- 2.0.0rc7
- 2.0.0rc8
- 2.0.1
- 2.0.2
- 2.0.3
- 2.0.4
- 2.0.5
- 2.0.6
- 2.0.7
- 2.1.0
- 2.10.0
- 2.10.1
- 2.11.0
- 2.11.1
- 2.11.2
- 2.12.0
- 2.12.1
- 2.12.2
- 2.12.3
- 2.12.4
- 2.12.5
- 2.13.0
- 2.14.0
- 2.14.1
- 2.14.2
- 2.15.0
- 2.16.0
- 2.17.0
- 2.18.0
- 2.18.1
- 2.2.0
- 2.2.1
- 2.3.0
- 2.4.0
- 2.5.0
- 2.6.0
- 2.7.0
- 2.7.1
- 2.7.2
- 2.7.3
- 2.8.0
- 2.9.0
- 2.9.1
- Affected ranges
- ECOSYSTEM: < 2.18.2
Update to 2.18.2
jupyter-server Ubuntu:22.04:LTS
- Versions
- 1.2.2-1
- 1.13.1-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
jupyter-server Ubuntu:24.04:LTS
- Versions
- 1.23.3-1
- 1.23.3-2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
jupyter-server Ubuntu:25.10
- Versions
- 2.14.2-5
- 2.15.0-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
jupyter-server Ubuntu:26.10
- Versions
- 2.17.0-1
- 2.20.0-3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
jupyter-server Ubuntu:26.04:LTS
- Versions
- 2.15.0-1
- 2.17.0-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published