CVE-2026-5422: Duplicate Advisory Path Traversal Vulnerability
MODERATECVE-2026-5422 is a MODERATE (CVSS 6.8) path traversal vulnerability (CWE-23: Relative Path Traversal) affecting Duplicate Advisory libraries in the PyPI ecosystem. The issue involves jupyter server vulnerable to path traversal via incorrect root directory boundary check in _get_os_path(). Remediation is available by upgrading affected packages to version 2.18.2.
CVE-2026-5422 at a Glance
Security Impact
CVSS: 6.8
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N).
How to Fix CVE-2026-5422
To remediate this vulnerability, upgrade all affected Duplicate Advisory dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
pip install jupyter-server>=2.18.2
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
pip show jupyter-server
How to Check if You Are Affected
To determine whether your Python environment is affected by CVE-2026-5422, inspect your installed packages using pip:
pip show jupyter-server
Analyze the terminal output to locate any version of Duplicate Advisory in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2.18.2), your application is affected.
Note: The pip show jupyter-server command checks currently installed packages in your active Python environment.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-23: Relative Path Traversal, where the product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize sequences such as ".." that can resolve to a location that is outside of that directory. In Duplicate Advisory, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-5422 Affected Duplicate Advisory Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
jupyter-server
|
PyPI |
< 2.18.2
|
2.18.2
|
References
Frequently Asked Questions
What is CVE-2026-5422?
Which Duplicate Advisory versions are affected?
What version fixes CVE-2026-5422?
Is jupyter-server affected?
What is the CVSS score of CVE-2026-5422?
What CWE is associated with CVE-2026-5422?
How can I check PyPI dependencies for CVE-2026-5422?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-gf7q-q4j7-hp7c",
"modified" : "2026-07-31T20:20:51Z",
"published" : "2026-06-02T12:31:26Z",
"withdrawn" : "2026-07-31T20:20:51Z",
"aliases" : [ "CVE-2026-5422" ],
"summary" : "Duplicate Advisory: Jupyter Server vulnerable to Path Traversal via incorrect root directory boundary check in _get_os_path() ",
"details" : "### Duplicate Advisory\nThis advisory has been withdrawn because it is a duplicate of GHSA-5789-5fc7-67v3. This link is maintained to preserve external references.\n\n### Original Description\nA 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.",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "PyPI",
"name" : "jupyter-server"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "2.18.2"
} ]
} ]
} ],
"references" : [ {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-5422"
}, {
"type" : "ADVISORY",
"url" : "https://github.com/advisories/GHSA-gf7q-q4j7-hp7c"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/jupyter-server/jupyter_server"
}, {
"type" : "WEB",
"url" : "https://github.com/pypa/advisory-database/tree/main/vulns/jupyter-server/PYSEC-2026-2532.yaml"
}, {
"type" : "WEB",
"url" : "https://huntr.com/bounties/24a36953-6490-466f-8cb2-a90d1ca56e0f"
}, {
"type" : "WEB",
"url" : "https://pypi.org/project/jupyter-server"
}, {
"type" : "WEB",
"url" : "http://github.com/jupyter-server/jupyter_server/commit/0d829f2c35a481c3b24ecbe1e25a6f79954e88f2"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-23" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-07-09T22:05:59Z",
"nvd_published_at" : "2026-06-02T10:16:25Z"
}
}