{"id":"CVE-2026-39378","aliases":["DEBIAN-CVE-2026-39378","EUVD-2026-24025","GHSA-7jqv-fw35-gmx9","OESA-2026-2195","OESA-2026-2196","OESA-2026-2215","PYSEC-2026-2230","UBUNTU-CVE-2026-39378","openSUSE-SU-2026:10603-1"],"status":"published","title":"nbconvert has an Arbitrary File Read via Path Traversal in HTMLExporter Image Embedding","description":"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.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00306,"percentile":0.23663,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22","CWE-23","CWE-73"],"published":"2026-04-21T00:17:00Z","modified":"2026-10-28T02:30:59Z","fixes":[{"ecosystem":"PyPI","package":"nbconvert","fixed_in":["7.17.1"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:13","package":"nbconvert","fixed_in":["7.16.6-1+deb13u1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"nbconvert","fixed_in":["7.17.1-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.5.0"},{"fixed":"7.17.1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.5.3-3","6.5.3-4","6.5.3-5","7.16.4-1","7.16.4-2","7.16.5-1","7.16.6-1","7.17.0-1","7.17.1-1","7.17.1-2"]},{"source":"osv","ecosystem":"Debian:13","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.16.6-1+deb13u1"}]}],"versions":["7.16.6-1"]},{"source":"osv","ecosystem":"Debian:14","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.17.1-1"}]}],"versions":["7.16.6-1","7.17.0-1"]},{"source":"osv","ecosystem":"PyPI","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.5.0"},{"fixed":"7.17.1"}]}],"versions":["6.5.0","6.5.1","6.5.2","6.5.3","6.5.4","7.0.0","7.0.0rc0","7.0.0rc1","7.0.0rc2","7.0.0rc3","7.1.0","7.10.0","7.11.0","7.12.0","7.13.0","7.13.1","7.14.0","7.14.1","7.14.2","7.15.0","7.16.0","7.16.1","7.16.2","7.16.3","7.16.4","7.16.5","7.16.6","7.17.0","7.2.0","7.2.1","7.2.10","7.2.2","7.2.3","7.2.4","7.2.5","7.2.6","7.2.7","7.2.8","7.2.9","7.3.0","7.3.1","7.4.0","7.5.0","7.6.0","7.7.0","7.7.1","7.7.2","7.7.3","7.7.4","7.8.0","7.9.0","7.9.1","7.9.2"]},{"source":"osv","ecosystem":"openEuler:24.03-LTS","package":"python-nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.17.1-1.oe2403"}]}],"bundled":2},{"source":"osv","ecosystem":"openEuler:24.03-LTS-SP3","package":"python-nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.17.1-1.oe2403sp3"}]}],"bundled":2},{"source":"osv","ecosystem":"openEuler:24.03-LTS-SP1","package":"python-nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.17.1-1.oe2403sp1"}]}],"bundled":2},{"source":"osv","ecosystem":"PyPI","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"6.5.0"},{"fixed":"7.17.1"}]}],"versions":["6.5.0","6.5.1","6.5.2","6.5.3","6.5.4","7.0.0","7.0.0rc0","7.0.0rc1","7.0.0rc2","7.0.0rc3","7.1.0","7.10.0","7.11.0","7.12.0","7.13.0","7.13.1","7.14.0","7.14.1","7.14.2","7.15.0","7.16.0","7.16.1","7.16.2","7.16.3","7.16.4","7.16.5","7.16.6","7.17.0","7.2.0","7.2.1","7.2.10","7.2.2","7.2.3","7.2.4","7.2.5","7.2.6","7.2.7","7.2.8","7.2.9","7.3.0","7.3.1","7.4.0","7.5.0","7.6.0","7.7.0","7.7.1","7.7.2","7.7.3","7.7.4","7.8.0","7.9.0","7.9.1","7.9.2"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.2.0-4","5.3.1-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.4-2ubuntu2","5.6.0-1","5.6.0-2","5.6.1-1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.6.1-3","6.1.0-1","6.3.0-1","6.4.0-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["6.5.3-4","6.5.3-5"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["7.16.6-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["7.17.0-1","7.17.1-2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["7.16.6-1","7.17.0-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-nbconvert","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.17.1-1.1"}]}],"bundled":3}],"products":[{"vendor":"jupyter","product":"nbconvert"}],"references":[{"url":"https://github.com/jupyter/nbconvert/security/advisories/GHSA-7jqv-fw35-gmx9","tags":["x_refsource_CONFIRM","Mitigation","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/jupyter/nbconvert/releases/tag/v7.17.1","tags":["x_refsource_MISC","Product","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39378","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7jqv-fw35-gmx9"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39378.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-39378","tags":["advisory"]},{"url":"https://github.com/jupyter/nbconvert","tags":["package"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-2195","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39377","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-2196","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-2215","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-39378","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-39378","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2025-53000","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-39377","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-39378","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-39378","title":"nbconvert has an Arbitrary File Read via Path Traversal in HTMLExporter Image Embedding","description":"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.","status":"published","published":"2026-04-21T00:17:00.684Z","modified":"2026-04-21T13:43:29.081Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-22","CWE-73"],"updated_at":"2026-11-02T14:20:02.662847Z"}],"euvd":[{"id":"EUVD-2026-24025","description":"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.","status":"published","published":"2026-04-21T00:17:00Z","modified":"2026-04-21T13:43:29Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T19:24:22.012341Z"}],"ghsa":[{"id":"GHSA-7jqv-fw35-gmx9","title":"nbconvert has an Arbitrary File Read via Path Traversal in HTMLExporter Image Embedding","description":"## Summary\n\nWhen `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.\n\n## Patches\n\nUpgrade to nbconvert 7.17.1\n\n## Workarounds\n\nDo not enable `HTMLExporter.embed_images` (it is not enabled by default).","status":"published","published":"2026-04-21T17:18:53Z","modified":"2026-04-21T17:18:54Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-22","CWE-23"],"updated_at":"2026-11-02T14:39:55.105822Z"}],"nvd":[{"id":"CVE-2026-39378","description":"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.","status":"published","published":"2026-04-21T01:16:06.073Z","modified":"2026-10-26T21:10:00.17Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-22","CWE-73"],"updated_at":"2026-11-02T14:12:15.120927Z"}],"osv":[{"id":"CVE-2026-39378","title":"nbconvert has an Arbitrary File Read via Path Traversal in HTMLExporter Image Embedding","description":"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.","status":"published","published":"2026-04-21T00:17:00.684Z","modified":"2026-10-28T02:30:59.851514466Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-22","CWE-73"],"updated_at":"2026-11-02T15:45:03.040464Z"},{"id":"DEBIAN-CVE-2026-39378","description":"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.","status":"published","published":"2026-04-21T01:16:06.073Z","modified":"2026-10-27T09:47:38.574833968Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:45:54.892385Z"},{"id":"GHSA-7jqv-fw35-gmx9","title":"nbconvert has an Arbitrary File Read via Path Traversal in HTMLExporter Image Embedding","description":"## Summary\n\nWhen `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.\n\n## Patches\n\nUpgrade to nbconvert 7.17.1\n\n## Workarounds\n\nDo not enable `HTMLExporter.embed_images` (it is not enabled by default).","status":"published","published":"2026-04-21T17:18:53Z","modified":"2026-09-10T03:50:43.685983757Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-22","CWE-23"],"updated_at":"2026-11-02T15:46:41.002603Z"},{"id":"OESA-2026-2195","title":"python-nbconvert security update","description":"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.\r\n\r\nSecurity Fix(es):\n\nThe 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)\n\nThe 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\u0026apos;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)","status":"published","published":"2026-05-03T11:11:10Z","modified":"2026-08-18T01:19:51.081258011Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:46.087701Z"},{"id":"OESA-2026-2196","title":"python-nbconvert security update","description":"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.\r\n\r\nSecurity Fix(es):\n\nThe 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)\n\nThe 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\u0026apos;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)","status":"published","published":"2026-05-03T11:11:10Z","modified":"2026-08-18T01:19:50.947930593Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:46.087701Z"},{"id":"OESA-2026-2215","title":"python-nbconvert security update","description":"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.\r\n\r\nSecurity Fix(es):\n\nThe 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)\n\nThe 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\u0026apos;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)","status":"published","published":"2026-05-09T11:11:11Z","modified":"2026-08-18T01:19:51.674280541Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:46.087701Z"},{"id":"PYSEC-2026-2230","description":"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.","status":"published","published":"2026-04-21T01:16:06.073Z","modified":"2026-07-13T07:15:37.724478345Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:52:55.537808Z"},{"id":"UBUNTU-CVE-2026-39378","description":"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.","status":"published","published":"2026-04-21T01:16:00Z","modified":"2026-10-17T12:58:51.99126452Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T16:56:16.686388Z"},{"id":"openSUSE-SU-2026:10603-1","title":"jupyter-nbconvert-7.17.1-1.1 on GA media","description":"These are all security issues fixed in the jupyter-nbconvert-7.17.1-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-04-22T00:00:00Z","modified":"2026-04-23T08:45:15.674585Z","updated_at":"2026-11-02T16:58:38.415593Z"}]}}
