Skip to main content

Jupyter nbconvert EUVDEUVD-2026-107551

| CVE-2026-114140 HIGH
Path Traversal (CWE-22)
2026-10-21 GitHub_M GHSA-pjvx-prjx-h659
8.8
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft notebook with traversal filename metadata
  2. Delivery
    Deliver malicious .ipynb to victim
  3. Exploit
    Victim converts with markdown/LaTeX/RST/AsciiDoc exporter
  4. Execution
    Path traversal writes attacker bytes outside output dir
  5. Impact
    Overwrite 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

nbconvert 5.4.0, < 7.17.2

Affected Packages

pypi nbconvert fix: 7.17.2

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

Vendor (GitHub_M) PRIMARY 8.8 HIGH
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
vuln.today AI 7.1 HIGH

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).

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Red Hat 7.8 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 22:03 EUVD
CVE Published
Oct 21, 2026 - 20:19 cve.org
HIGH 8.8

DescriptionCVE.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
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 77% exploitable
Prevalence
High
core Jupyter ecosystem converter, ubiquitous across data-science Python environments and pipelines
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy