{"api_version":"1","generated_at":"2026-11-13T23:52:54+00:00","cve":"CVE-2026-128134","urls":{"html":"https://cve.report/CVE-2026-128134","api":"https://cve.report/api/cve/CVE-2026-128134.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-128134","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-128134"},"summary":{"title":"NLTK dot2img runs Graphviz 'dot' without the trusted-exec chokepoint, enabling local code execution via a writable PATH element","description":"NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. Prior to 3.10.4, nltk.parse.dependencygraph.dot2img resolves the Graphviz dot executable through PATH but invokes the resulting absolute executable without routing through spawn_trusted, so resolve_trusted_executable ownership and writability validation and safe_env loader environment scrubbing do not run. A local low-privileged attacker who can write to a directory on a POSIX victim's PATH can plant or replace dot, and code executes as the victim when dot2img is called directly or DependencyGraph.repr_svg renders a graph. The current-working-directory-only bare-name vector is blocked and is not this vulnerability; this issue is the residual writable absolute PATH element bypass after CVE-2026-78680. This issue is fixed in version 3.10.4.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-11-13 23:17:17","updated_at":"2026-11-13 23:17:18"},"problem_types":["CWE-426","CWE-427","CWE-426 CWE-426: Untrusted Search Path","CWE-427 CWE-427: Uncontrolled Search Path Element"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"attackComplexity":"LOW","attackVector":"LOCAL","availabilityImpact":"HIGH","baseScore":7.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://github.com/nltk/nltk/commit/b002a7288c22db86fd6ca2d9526e3f91d6fda797","name":"https://github.com/nltk/nltk/commit/b002a7288c22db86fd6ca2d9526e3f91d6fda797","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/nltk/nltk/security/advisories/GHSA-7mxv-7h3q-9324","name":"https://github.com/nltk/nltk/security/advisories/GHSA-7mxv-7h3q-9324","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/nltk/nltk/pull/3887","name":"https://github.com/nltk/nltk/pull/3887","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/nltk/nltk/releases/tag/v3.10.4","name":"https://github.com/nltk/nltk/releases/tag/v3.10.4","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-128134","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-128134","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"nltk","product":"nltk","version":"affected < 3.10.4","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"product":"nltk","vendor":"nltk","versions":[{"status":"affected","version":"< 3.10.4"}]}],"descriptions":[{"lang":"en","value":"NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. Prior to 3.10.4, nltk.parse.dependencygraph.dot2img resolves the Graphviz dot executable through PATH but invokes the resulting absolute executable without routing through spawn_trusted, so resolve_trusted_executable ownership and writability validation and safe_env loader environment scrubbing do not run. A local low-privileged attacker who can write to a directory on a POSIX victim's PATH can plant or replace dot, and code executes as the victim when dot2img is called directly or DependencyGraph.repr_svg renders a graph. The current-working-directory-only bare-name vector is blocked and is not this vulnerability; this issue is the residual writable absolute PATH element bypass after CVE-2026-78680. This issue is fixed in version 3.10.4."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"LOCAL","availabilityImpact":"HIGH","baseScore":7.8,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-426","description":"CWE-426: Untrusted Search Path","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-427","description":"CWE-427: Uncontrolled Search Path Element","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-13T22:28:20.242Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/nltk/nltk/security/advisories/GHSA-7mxv-7h3q-9324","tags":["x_refsource_CONFIRM"],"url":"https://github.com/nltk/nltk/security/advisories/GHSA-7mxv-7h3q-9324"},{"name":"https://github.com/nltk/nltk/pull/3887","tags":["x_refsource_MISC"],"url":"https://github.com/nltk/nltk/pull/3887"},{"name":"https://github.com/nltk/nltk/commit/b002a7288c22db86fd6ca2d9526e3f91d6fda797","tags":["x_refsource_MISC"],"url":"https://github.com/nltk/nltk/commit/b002a7288c22db86fd6ca2d9526e3f91d6fda797"},{"name":"https://github.com/nltk/nltk/releases/tag/v3.10.4","tags":["x_refsource_MISC"],"url":"https://github.com/nltk/nltk/releases/tag/v3.10.4"}],"source":{"advisory":"GHSA-7mxv-7h3q-9324","discovery":"UNKNOWN"},"title":"NLTK dot2img runs Graphviz 'dot' without the trusted-exec chokepoint, enabling local code execution via a writable PATH element"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-128134","datePublished":"2026-11-13T22:28:20.242Z","dateReserved":"2026-11-12T22:42:47.032Z","dateUpdated":"2026-11-13T22:28:20.242Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-13 23:17:17","lastModifiedDate":"2026-11-13 23:17:18","problem_types":["CWE-426","CWE-427","CWE-426 CWE-426: Untrusted Search Path","CWE-427 CWE-427: Uncontrolled Search Path Element"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.9}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"128134","Ordinal":"1","Title":"NLTK dot2img runs Graphviz 'dot' without the trusted-exec chokep","CVE":"CVE-2026-128134","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"128134","Ordinal":"1","NoteData":"NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. Prior to 3.10.4, nltk.parse.dependencygraph.dot2img resolves the Graphviz dot executable through PATH but invokes the resulting absolute executable without routing through spawn_trusted, so resolve_trusted_executable ownership and writability validation and safe_env loader environment scrubbing do not run. A local low-privileged attacker who can write to a directory on a POSIX victim's PATH can plant or replace dot, and code executes as the victim when dot2img is called directly or DependencyGraph.repr_svg renders a graph. The current-working-directory-only bare-name vector is blocked and is not this vulnerability; this issue is the residual writable absolute PATH element bypass after CVE-2026-78680. This issue is fixed in version 3.10.4.","Type":"Description","Title":"NLTK dot2img runs Graphviz 'dot' without the trusted-exec chokep"}]}}}