Skip to main content

Nbconvert CVE-2026-39378

| EUVDEUVD-2026-24025 MEDIUM
Path Traversal (CWE-22)
2026-04-21 GitHub_M GHSA-7jqv-fw35-gmx9
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Craft malicious notebook with path traversal in image ref
  2. Delivery
    Deliver notebook to target system
  3. Exploit
    Target user/system converts notebook with embed_images enabled
  4. Install
    Parser resolves traversal path to sensitive file
  5. C2
    nbconvert reads file from host system
  6. Execute
    Encodes file as base64 data URI
  7. Impact
    Embeds in output HTML
  8. Step 8
    Attacker exfiltrates HTML to obtain sensitive data

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 HTMLExporter.embed_images option must be explicitly enabled in the nbconvert configuration. This is a non-default setting; the feature is disabled by default. A malicious or compromised Jupyter notebook must be provided to the conversion process. The notebook conversion process must be initiated by a user or automated system with read access to sensitive files on the host system. The attacker does not require authentication to nbconvert itself, and the attack succeeds against any version 6.5-7.17.0 when the above conditions are met. Exploitation is limited to confidentiality breach; the attacker cannot modify files or disrupt availability. The attack requires the attacker to craft a valid .ipynb notebook file and deliver it to a target system where conversion occurs.

Impact

CVSS 6.5 with vector AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N indicates a network-reachable attack requiring no privileges but with user interaction (notebook must be converted by the target), resulting in high confidentiality impact but no integrity or availability damage. The requirement for user interaction (UI:R) - someone must actively trigger notebook conversion - is a significant limiting factor that reduces real-world risk compared to the base CVSS score. However, in automated processing pipelines (e.g., JupyterHub with auto-conversion, CI/CD workflows converting notebooks), this interaction requirement may be automatically satisfied. The attack is unauthenticated (PR:N) and of low complexity (AC:L), making exploitation straightforward for any attacker who can deliver a malicious notebook. No EPSS score or KEV status was provided in the input data; absent these signals, exploitation probability cannot be quantified beyond CVSS assessment. The workaround (disabling HTMLExporter.embed_images by default) is already in place in default configurations, meaning only users who explicitly enable the feature face risk. This is a legitimate high-impact vulnerability for affected configurations, but the real-world attack surface is narrower than the CVSS score suggests due to the required user interaction and non-default feature enablement.

Exploit ScenarioDerived

An attacker crafts a malicious Jupyter notebook (.ipynb) containing image references with path traversal sequences (e.g., ![image](../../../etc/passwd)). The notebook is shared with or uploaded to a system where a user runs nbconvert with HTMLExporter.embed_images enabled to convert it to HTML. During conversion, nbconvert processes the malicious image reference, resolves the traversal path, reads the sensitive file (/etc/passwd in this example), encodes it as base64, and embeds it as a data URI in the output HTML. The attacker can exfiltrate the HTML file or view the embedded content to obtain the sensitive data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Apr 21, 2026

Jupyter nbconvert 6.5 through 7.17.0 allows unauthenticated remote attackers to read arbitrary files from the conversion host when HTMLExporter.embed_images is enabled, by embedding malicious image references with path traversal sequences in a crafted notebook. A malicious actor can exfiltrate sensitive files as base64-encoded data URIs in the output HTML, achieving confidentiality breach with no integrity or availability impact. Vendor-released patch: version 7.17.1.

RemediationAI

Upgrade to Jupyter nbconvert 7.17.1 or later, which contains the vendor-released fix for path traversal in image references. This is the primary remediation and should be prioritized. For organizations unable to immediately patch, disable the HTMLExporter.embed_images feature; since this feature is not enabled by default, verify your nbconvert configuration (typically in jupyter_nbconvert_config.py or equivalent) does not set c.HTMLExporter.embed_images = True. If notebooks must be converted with embedded images, restrict conversion to trusted notebooks only and perform conversion in an isolated environment (e.g., containerized or sandboxed) where sensitive files are not accessible. Implement file system access controls to limit the nbconvert process's read permissions to necessary directories only; this provides defense-in-depth but does not substitute for patching. Additional guidance is available at https://github.com/jupyter/nbconvert/releases/tag/v7.17.1.

Affected VersionsENISA

nbconvert 6.5, < 7.17.1

Affected Packages

pypi nbconvert fix: 7.17.1

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

nbconvert is a Jupyter utility that converts notebook files (.ipynb) to multiple output formats (HTML, PDF, Markdown, etc.) using Jinja2 templating. When the HTMLExporter.embed_images feature is enabled, image references within notebooks are processed by the markdown renderer and embedded directly into the output HTML as base64 data URIs. The vulnerability exists in the path resolution logic within the markdown renderer: it does not properly validate or sanitize image file paths before attempting to read them from the file system. An attacker can craft image references using path traversal sequences (e.g., ../../../etc/passwd) to escape the intended notebook directory and access sensitive files anywhere on the conversion host. The root cause is insufficient input validation of file paths (CWE-22: Improper Limitation of a Pathname to a Restricted Directory). The affected product, identified by CPE cpe:2.3:a:jupyter:nbconvert:*:*:*:*:*:*:*:*, spans multiple versions; the vulnerability is present in all releases from 6.5 through 7.17.0.

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 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
SUSE MEDIUM
Red Hat 5.7 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

3
Patch released
Apr 23, 2026 - 17:50 nvd
Patch available
Patch available
Apr 21, 2026 - 02:01 EUVD
CVE Published
Apr 21, 2026 - 00:17 nvd
MEDIUM 6.5

DescriptionCVE.org

The nbconvert tool, jupyter nbconvert, converts Jupyter notebooks to various other formats via Jinja templates. In versions 6.5 through 7.17.0, when HTMLExporter.embed_images=True, nbconvert's markdown renderer allows arbitrary file read via path traversal in image references. A malicious notebook can exfiltrate sensitive files from the conversion host by embedding them as base64 data URIs in the output HTML. nbconvert 7.17.1 contains a fix. As a workaround, do not enable HTMLExporter.embed_images; it is not enabled by default.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 14 pypi packages depend on nbconvert (13 direct, 1 indirect)

Ecosystem-wide dependent count for version 6.5.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 89% exploitable
Threat Intel
1
1 source
Social Media
2
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub VulDB

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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.

Related Vulnerabilities in nbconvert Path Traversal Vulnerabilities

View all 2

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
openSUSE Tumbleweed Fixed

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