Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft notebook with traversal filename metadata
-
DeliveryDeliver malicious .ipynb to victim
-
ExploitVictim converts with markdown/LaTeX/RST/AsciiDoc exporter
-
ExecutionPath traversal writes attacker bytes outside output dir
-
ImpactOverwrite startup/config file for code execution
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a victim to convert an attacker-supplied notebook using specifically the markdown, LaTeX, reStructuredText, or AsciiDoc exporter - NOT the default HTML exporter - and the notebook must contain cell output metadata whose 'filename' field embeds path traversal sequences (e.g., '../../'); this is the exact precondition for ExtractOutputPreprocessor joining the filename to output_files_dir without directory confinement. Limiting factors: the attack requires active user interaction (the victim must initiate conversion with a vulnerable exporter), only affects nbconvert 5.4.0 through 7.17.1, writes are bounded to filesystem locations writable by the victim's own user account, and merely re-running the notebook cell would overwrite the malicious metadata - but simply converting the supplied notebook does not, which is why delivery as a static notebook works. |
| Impact | The input provides only a CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H, base 8.8). No EPSS probability, no SSVC decision data, and no KEV entry were supplied, and no public exploit is identified in the references (the only code is the vendor fix commit and its regression tests). The headline 8.8 is driven by all-High impact and subsequent-system metrics, but two signals pull real-world risk down: AT:P (attack requirement - a specific non-default exporter must be used) and UI:A (the victim must actively run a conversion), which together make this non-automatable and non-wormable. This is a user-interaction-gated arbitrary file write, not a remotely-triggerable server exploit, so it is best treated as a moderate, targeted/social-engineering risk rather than a mass-exploitation priority - elevated mainly by nbconvert's very wide deployment. One conflict to flag: the supplied vector uses PR:L, but the attacker needs no privileges on the victim system - they only supply a crafted notebook - so I independently assess PR:N; verify privilege assumptions before using the 8.8 for prioritization. Exploitation status: no public exploit identified at time of analysis. |
| Exploit ScenarioDerived | An attacker publishes or emails a malicious Jupyter notebook (e.g., in a public repo or shared dataset) whose cell output metadata contains a filename with path traversal sequences such as '../../.bashrc'. A victim converts it with a vulnerable exporter (nbconvert --to markdown/latex/rst/asciidoc), causing attacker-controlled output bytes to be written outside output_files_dir to an arbitrary location the victim's user can write, such as a shell startup file, enabling later code execution. No public POC is identified; the vendor's regression test demonstrates the traversal conceptually but is defensive, and UI:A/AT:P means the victim must actively convert using a non-default exporter. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Path traversal in Jupyter nbconvert 5.4.0 through 7.17.1 allows a remote unauthenticated attacker to write attacker-controlled output data to arbitrary filesystem locations writable by the victim's user account. Exploitation requires the victim to convert an attacker-supplied notebook using the markdown, LaTeX, reStructuredText, or AsciiDoc exporter, not the default HTML exporter; the assessed impact is high integrity and low availability with no confidentiality impact. No public exploit was identified at time of analysis, and version 7.17.2 contains the vendor fix.
RemediationAI
Upgrade to Jupyter nbconvert 7.17.2 or later (vendor-released patch: 7.17.2), which sanitizes output filename metadata with os.path.basename and skips empty basenames; see the advisory at https://github.com/jupyter/nbconvert/security/advisories/GHSA-pjvx-prjx-h659 and the release at https://github.com/jupyter/nbconvert/releases/tag/v7.17.2. If upgrading immediately is not possible, do not convert untrusted notebooks with the markdown, LaTeX, reStructuredText, or AsciiDoc exporters; restrict conversions to the default HTML exporter where feasible (trade-off: loss of the desired output format). Alternatively, run nbconvert in a sandboxed container or low-privilege account whose write access is limited to a dedicated output directory (trade-off: operational overhead and possible breakage of workflows that expect broader write access), or disable ExtractOutputPreprocessor for untrusted input (trade-off: extracted output files will not be written). Because exploitation requires victim interaction, user awareness around opening and converting untrusted notebooks remains relevant.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Jupyter nbconvert converts notebooks to other formats through Jinja-based exporters. The ExtractOutputPreprocessor in nbconvert/preprocessors/extractoutput.py reads the attacker-controlled cell output metadata 'filename' field and joins it to output_files_dir without confining the result to that directory, a classic CWE-22 path traversal. The CPE cpe:2.3:a:jupyter:nbconvert:*:*:*:*:*:*:*:* covers affected releases from 5.4.0 before 7.17.2. The named exporters (markdown, LaTeX, reStructuredText, and AsciiDoc) trigger extraction of output files, while the default HTML exporter is not identified as an exploitation path in the assessment. The upstream fix replaces the raw metadata filename with os.path.basename(fname), logs a warning when path components are stripped, and skips outputs whose basename is empty; accompanying tests assert that inputs such as '/tmp/evil.png', '../../evil.png', and 'sub/evil.png' are reduced to 'evil.png' under output_files_dir.
Know when Nbconvert gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Attacker needs no privileges to craft the notebook (PR:N) but the victim must run the conversion (UI:R); arbitrary file write gives I:H with possible corruption (A:L) and no direct read (C:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
The nbconvert tool, jupyter nbconvert, converts Jupyter notebooks to various other formats via Jinja templates. From 5.4.0 until 7.17.2, ExtractOutputPreprocessor in nbconvert/preprocessors/extractoutput.py joins the attacker-controlled cell output metadata filename to output_files_dir without limiting the result to the intended directory. When a victim converts a malicious notebook with the markdown, LaTeX, reStructuredText, or AsciiDoc exporter, path traversal in the output filename can write attacker-controlled output data to arbitrary locations accessible to the victim. Running the notebook cell again replaces the malicious output metadata, but merely converting the supplied notebook does not. This issue is fixed in version 7.17.2.
Blast Radius
ecosystem impact- 2 pypi packages depend on nbconvert (2 direct, 0 indirect)
Ecosystem-wide dependent count for version 5.4.0.
Technical POC Analysis
CWE-22 path traversal in nbconvert/preprocessors/extractoutput.py, in ExtractOutputPreprocessor at lines 116-119.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Jupyter nbconvert, the conversion utility used across data science and analytics workflows, contains a high-severity path traversal flaw (CVE-2026-114140, CVSS 8.8) that lets a crafted notebook write files to locations the victim's account can reach. Any team member who converts an untrusted notebook using the markdown, LaTeX, reStructuredText, or AsciiDoc exporters can be manipulated into overwriting or planting files, which puts the integrity of analysis outputs and potentially the surrounding workstation or notebook server at risk. Because the vulnerable tooling sits on machines that typically hold credentials, datasets, and model artifacts, leadership should treat this as a data-integrity and potential downstream code-execution exposure rather than a routine library bug.
Apply vendor patch: 7.17.2. Where upgrade cannot be completed immediately, restrict conversions to the default HTML exporter and disable the markdown, LaTeX, reStructuredText, and AsciiDoc exporters; perform any required conversions in an isolated, low-privilege container or VM with no access to sensitive mounts or credentials; block conversion of externally sourced notebooks pending review.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Jupyter nbconvert 6.5 through 7.17.0 allows unauthenticated remote attackers to read arbitrary files from the conversion
Arbitrary file write in Jupyter nbconvert 6.5 through 7.17.0 allows unauthenticated attackers to write files to arbitrar
EUVD-2026-107551
GHSA-pjvx-prjx-h659
NVD
CVE.org
EPSS
Exploit-DB