CVE-2026-39377
nbconvert has an Arbitrary File Write via Path Traversal in Cell Attachment Filenames
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.5
nbconvert has an Arbitrary File Write via Path Traversal in Cell Attachment Filenames
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.
- Record
CVE-2026-39377- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Weakness
- CWE-22, CWE-73
- Updated
- 2026-11-02
EUVDEUVD-2026-24023
6.5
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.
- Record
EUVD-2026-24023- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-4c99-qj7h-p3vg
6.5
nbconvert has an Arbitrary File Write via Path Traversal in Cell Attachment Filenames
Arbitrary File Write via Path Traversal in Cell Attachment Filenames
Summary
nbconvert allows 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.
Impact
This vulnerability allows writing files with arbitrary content to arbitrary filesystem locations, limited only by the permissions of the process running nbconvert. The attacker controls:
- Full destination path (via
../traversal) - Filename
- File extension
- File content
Patches
- upgrade to nbconvert v7.17.1
Workarounds
disable ExtractAttachmentsPreprocessor by setting:
c. ExtractAttachmentsPreprocessor.enabled = False
- Record
GHSA-4c99-qj7h-p3vg- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Weakness
- CWE-22, CWE-73
- Updated
- 2026-11-02
NVD
6.5
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.
- Record
CVE-2026-39377- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Weakness
- CWE-22, CWE-73
- Updated
- 2026-11-02
OSV
6.5
nbconvert has an Arbitrary File Write via Path Traversal in Cell Attachment Filenames
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.
- Record
CVE-2026-39377- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Weakness
- CWE-22, CWE-73
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-39377
6.5
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.
- Record
DEBIAN-CVE-2026-39377- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
Show 7 moreShow less
OSVGHSA-4c99-qj7h-p3vg
6.5
nbconvert has an Arbitrary File Write via Path Traversal in Cell Attachment Filenames
Arbitrary File Write via Path Traversal in Cell Attachment Filenames
Summary
nbconvert allows 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.
Impact
This vulnerability allows writing files with arbitrary content to arbitrary filesystem locations, limited only by the permissions of the process running nbconvert. The attacker controls:
- Full destination path (via
../traversal) - Filename
- File extension
- File content
Patches
- upgrade to nbconvert v7.17.1
Workarounds
disable ExtractAttachmentsPreprocessor by setting:
c. ExtractAttachmentsPreprocessor.enabled = False
- Record
GHSA-4c99-qj7h-p3vg- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Weakness
- CWE-22, CWE-73
- Updated
- 2026-11-02
OSVOESA-2026-2195
6.5
python-nbconvert security update
The nbconvert tool, jupyter nbconvert, converts notebooks to various other formats via Jinja templates. The nbconvert tool allows you to convert an .ipynb notebook file into various static formats including HTML, LaTeX, PDF, Reveal JS, Markdown (md), ReStructured Text (rst) and executable script.
Security Fix(es):
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.(CVE-2026-39377)
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.(CVE-2026-39378)
- Record
OESA-2026-2195- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVOESA-2026-2196
6.5
python-nbconvert security update
The nbconvert tool, jupyter nbconvert, converts notebooks to various other formats via Jinja templates. The nbconvert tool allows you to convert an .ipynb notebook file into various static formats including HTML, LaTeX, PDF, Reveal JS, Markdown (md), ReStructured Text (rst) and executable script.
Security Fix(es):
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.(CVE-2026-39377)
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.(CVE-2026-39378)
- Record
OESA-2026-2196- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVOESA-2026-2215
6.5
python-nbconvert security update
The nbconvert tool, jupyter nbconvert, converts notebooks to various other formats via Jinja templates. The nbconvert tool allows you to convert an .ipynb notebook file into various static formats including HTML, LaTeX, PDF, Reveal JS, Markdown (md), ReStructured Text (rst) and executable script.
Security Fix(es):
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.(CVE-2026-39377)
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.(CVE-2026-39378)
- Record
OESA-2026-2215- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVPYSEC-2026-2229
6.5
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.
- Record
PYSEC-2026-2229- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-39377
6.5
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.
- Record
UBUNTU-CVE-2026-39377- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10603-1 No score
jupyter-nbconvert-7.17.1-1.1 on GA media
These are all security issues fixed in the jupyter-nbconvert-7.17.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10603-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nbconvertPyPI |
6.5.0 up to 7.17.1 | 7.17.1 |
nbconvertDebian:13 |
before 7.16.6-1+deb13u1, plus listed versions 7.16.6-1 |
7.16.6-1+deb13u1 |
nbconvertDebian:14 |
before 7.17.1-1, plus listed versions 7.16.6-17.17.0-1 |
7.17.1-1 |
nbconvertPyPI |
6.5.0 up to 7.17.1, plus listed versions 6.5.16.5.26.5.36.5.47.0.0 Show 45 moreShow less7.0.0rc07.0.0rc17.0.0rc27.0.0rc37.1.07.10.07.11.07.12.07.13.07.13.17.14.07.14.17.14.27.15.07.16.07.16.17.16.27.16.37.16.47.16.57.16.67.17.07.2.07.2.17.2.107.2.27.2.37.2.47.2.57.2.67.2.77.2.87.2.97.3.07.3.17.4.07.5.07.6.07.7.07.7.17.7.27.7.37.7.47.8.07.9.0 |
7.17.1 |
python-nbconvertopenEuler:24.03-LTS From an advisory covering 2 CVEs |
before 7.17.1-1.oe2403 | 7.17.1-1.oe2403 |
python-nbconvertopenEuler:24.03-LTS-SP3 From an advisory covering 2 CVEs |
before 7.17.1-1.oe2403sp3 | 7.17.1-1.oe2403sp3 |
python-nbconvertopenEuler:24.03-LTS-SP1 From an advisory covering 2 CVEs |
before 7.17.1-1.oe2403sp1 | 7.17.1-1.oe2403sp1 |
nbconvertUbuntu:18.04:LTS |
All versions, plus listed versions 4.2.0-45.3.1-1 |
None known |
nbconvertUbuntu:20.04:LTS |
All versions, plus listed versions 5.4-2ubuntu25.6.0-15.6.0-25.6.1-1 |
None known |
nbconvertUbuntu:22.04:LTS |
All versions, plus listed versions 5.6.1-36.1.0-16.3.0-16.4.0-1 |
None known |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
nbconvertUbuntu:24.04:LTS |
All versions, plus listed versions 6.5.3-46.5.3-5 |
None known |
nbconvertUbuntu:25.10 |
All versions, plus listed versions 7.16.6-1 |
None known |
nbconvertUbuntu:26.10 |
All versions, plus listed versions 7.17.0-17.17.1-2 |
None known |
nbconvertUbuntu:26.04:LTS |
All versions, plus listed versions 7.16.6-17.17.0-1 |
None known |
python-nbconvertopenSUSE:Tumbleweed From an advisory covering 3 CVEs |
before 7.17.1-1.1 | 7.17.1-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-39377 is a medium vulnerability (CVSS 6.5) in Jupyter Nbconvert, published April 21, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.27%, the 18th percentile. Fixed in nbconvert 7.17.1.
References
github.com/jupyter/nbconvert/security/advisories/GHSA-4c99-qj7h-p3vg
github.com/jupyter/nbconvert/releases/tag/v7.17.1
nvd.nist.gov/vuln/detail/CVE-2026-39377
github.com/advisories/GHSA-4c99-qj7h-p3vg
github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39377.json
security-tracker.debian.org/tracker/CVE-2026-39377
Show 10 moreShow less
github.com/jupyter/nbconvert
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2195
nvd.nist.gov/vuln/detail/CVE-2026-39378
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2196
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2215
ubuntu.com/security/CVE-2026-39377
cve.org/CVERecord?id=CVE-2026-39377
suse.com/security/cve/CVE-2025-53000
suse.com/security/cve/CVE-2026-39377
suse.com/security/cve/CVE-2026-39378
Left out here: 2 versions. The JSON record has them.