Jupyter Server vulnerable to Path Traversal via incorrect root directory boundary check in _get_os_path()
PYSEC-2026-2532 · CVE-2026-5422 · GHSA-gf7q-q4j7-hp7c
Published · Modified
AI SAST
Find this class of vulnerability in your own code
Corgea's AI-native static analysis detects vulnerabilities like this one across your repositories, ranks them by exploitability, and returns review-ready fixes.
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.
References
- ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2026-5422
- PACKAGE https://github.com/jupyter-server/jupyter_server
- WEB https://huntr.com/bounties/24a36953-6490-466f-8cb2-a90d1ca56e0f
- WEB http://github.com/jupyter-server/jupyter_server/commit/0d829f2c35a481c3b24ecbe1e25a6f79954e88f2
- PACKAGE https://pypi.org/project/jupyter-server
- ADVISORY https://github.com/advisories/GHSA-gf7q-q4j7-hp7c
Ready to move
Start Securing
Free, no credit card | First findings in minutes