Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker crafts malicious notebook with path traversal filenames
-
DeliveryUser opens notebook or runs nbconvert conversion
-
ExploitExtractAttachmentsPreprocessor parses attachment metadata
-
ExecutionUnsanitized filename passed to file I/O
-
PersistArbitrary file written to traversed path outside output directory
-
ImpactMalicious file persists in filesystem
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 | The ExtractAttachmentsPreprocessor must be active and processing the notebook (enabled by default in most nbconvert workflows). The notebook must contain cell attachments with path traversal sequences in filenames. The user or automated process must invoke nbconvert with notebook processing (e.g., nbconvert --to html notebook.ipynb or programmatic conversion via nbconvert.exporters). The process must have write permissions to the target traversal paths for exploitation to succeed. Non-default configurations that disable attachment extraction or that sanitize filenames prevent exploitation. No special user privileges or authentication are required; any user with read access to a malicious notebook can trigger file writes. |
| Impact | CVSS 6.5 (Medium) with network attack vector reflects the requirement for user interaction (UI:R) to open a crafted notebook, which moderates what would otherwise be a critical vulnerability. The AV:N/AC:L/PR:N parameters indicate no authentication or special complexity is required once a notebook is opened. EPSS and KEV status not provided in input data, limiting probability assessment. The real-world risk is significant for environments where users handle untrusted notebooks (shared datasets, collaborative work, downloaded examples), but lower for air-gapped or strictly controlled environments. The availability of GitHub advisory and patched version (7.17.1) suggests vendor response is timely. Path traversal with arbitrary file write capability could enable persistent compromise if .pyc files, importable modules, or application entry points are targeted. Compared against CVSS base score: the integrity impact (I:H) combined with no direct authentication barrier creates substantial risk for shared Jupyter deployments and educational institutions where notebook sharing is common. |
| Exploit ScenarioDerived | An attacker distributes a malicious Jupyter notebook via GitHub, a dataset repository, or direct email. The notebook contains a cell with an embedded attachment whose filename is crafted as '../../../tmp/evil.py' or '../../../../etc/cron.d/backdoor'. When a user opens the notebook and nbconvert extracts attachments (during preview, export, or automated processing), the ExtractAttachmentsPreprocessor writes the malicious file to the traversed path outside the intended output directory, potentially overwriting system files or injecting code into executable paths. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 21, 2026
Arbitrary file write in Jupyter nbconvert 6.5 through 7.17.0 allows unauthenticated attackers to write files to arbitrary filesystem locations outside the intended output directory by crafting malicious cell attachment filenames in notebooks. The ExtractAttachmentsPreprocessor fails to sanitize attachment filenames, enabling path traversal that provides full control over destination paths and file extensions. Requires user interaction (opening a malicious notebook) and is patched in version 7.17.1.
RemediationAI
Upgrade to Jupyter nbconvert version 7.17.1 or later immediately. For organizations unable to upgrade immediately, restrict notebook processing to trusted sources only and disable the ExtractAttachmentsPreprocessor if attachment functionality is not required (via nbconvert configuration: set ExtractAttachmentsPreprocessor to disabled in jupyter_nbconvert_config.py or use --to=<format> --no-prompt flag without attachment processing). Additionally, run nbconvert with minimal filesystem permissions (dedicated user account with restricted directory access) to limit the scope of file writes. Users should avoid opening or converting untrusted notebook files until patched. The official advisory is available at https://github.com/jupyter/nbconvert/security/advisories/GHSA-4c99-qj7h-p3vg and patched release at https://github.com/jupyter/nbconvert/releases/tag/v7.17.1.
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 is a document conversion utility that transforms Jupyter Notebook files (ipynb format) into other formats using Jinja2 templating. The ExtractAttachmentsPreprocessor component handles embedded cell attachments (binary data encoded within notebook JSON) by extracting them to the filesystem during conversion. The vulnerability stems from CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, aka 'Path Traversal') in how attachment filenames are passed directly to file I/O operations without path canonicalization or basename filtering. An attacker can craft filenames containing path traversal sequences (e.g., '../../../malicious.py') to write files anywhere the nbconvert process has permissions, allowing code injection into system directories, configuration paths, or application directories.
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
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
The nbconvert tool, jupyter nbconvert, converts Jupyter notebooks to various other formats via Jinja templates. Versions 6.5 through 7.17.0 allow arbitrary file writes to locations outside the intended output directory when processing notebooks containing crafted cell attachment filenames. The ExtractAttachmentsPreprocessor passes attachment filenames directly to the filesystem without sanitization, enabling path traversal attacks. This vulnerability provides complete control over both the destination path and file extension. Version 7.17.1 contains a patch.
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.
Related Vulnerabilities in nbconvert Path Traversal Vulnerabilities
View all 2Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allVendor StatusVendor
SUSE
Severity: Medium| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2026-24023
GHSA-4c99-qj7h-p3vg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB