Skip to main content

NLTK CVE-2026-62385

| EUVDEUVD-2026-64337 HIGH
External Control of File Name or Path (CWE-73)
2026-08-22 VulnCheck GHSA-568f-pv23-39p4 GHSA-qp76-pq9f-gr9m PYSEC-2026-3728
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Identify application exposing NLTK corpus reader to external input
  2. Delivery
    Craft path traversal selector or poisoned index payload
  3. Exploit
    Submit to frame_by_name/doc/lu/header method
  4. Execution
    NLTK constructs out-of-bounds file path
  5. Persist
    XML parser reads arbitrary file outside corpus root
  6. Impact
    Exfiltrate sensitive file contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File name/path control
Exploitation Conditions

Exploitation requires three concurrent conditions: (1) the target application must pass attacker-controlled input - from a network-reachable source such as an HTTP parameter, API call, or message queue entry - directly or with insufficient sanitization to one of the specific methods frame_by_name, doc, lu, or header on a FramenetCorpusReader or NKJPCorpusReader instance; (2) NLTK version before 3.10.0 must be installed; and (3) the FrameNet or NKJP corpus data must be present and the corresponding reader must be initialized, as these are optional downloads not bundled with NLTK by default. The AT:P condition in the CVSS 4.0 vector confirms that a specific attack target configuration must exist. Exploitation is further limited to reading files that are (a) accessible by the process's OS account, and (b) parseable as XML - binary files, files with non-XML content, or files outside the process's read permissions cannot be exfiltrated via this vector. Authentication requirements are not independently confirmable from the CVE description; the CVSS PR:N indicates no NLTK-level credentials are required, but application-layer authentication wrapping the corpus reader API, if present, would serve as a mitigating control.

Impact

The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N) communicates a nuanced risk profile. The AV:N and PR:N metrics indicate the attack path is network-accessible and requires no credentials, which would ordinarily elevate priority. However, AC:H and - critically - AT:P (attack target conditions present) significantly constrain exploitability: AT:P in CVSS 4.0 means a specific precondition must exist in the deployment, here that the application must relay externally-controlled input into the corpus reader methods. NLTK is predominantly used in research, academic, and data-science pipelines; production deployments that expose FramenetCorpusReader or NKJPCorpusReader methods to network-facing user input are uncommon. No EPSS data was provided in the input, no POC has been identified, and no active exploitation is confirmed (no CISA KEV listing). The high-sounding score of 8.2 reflects worst-case confidentiality impact but the realistic exploitable surface is narrow. Organizations running NLTK in isolated research environments with no external-facing corpus-reader exposure face minimal real-world risk; those with web services wrapping NLTK corpus functionality should treat this as higher priority.

Exploit ScenarioDerived

An attacker targeting a web application that accepts user-specified corpus queries and passes them to an NLTK FramenetCorpusReader instance submits a frame name parameter containing path traversal sequences such as '../../../etc/passwd' or a crafted index-poisoning payload to the frame_by_name endpoint. NLTK constructs a file path by concatenating the corpus root with the unsanitized selector, causing the XML parser to open and return contents of an arbitrary file readable by the application process. No public POC has been identified at time of analysis, and successful exploitation requires the application to expose these specific corpus reader methods to attacker-controlled input.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 22, 2026

Path traversal in NLTK's FramenetCorpusReader and NKJPCorpusReader (all versions before 3.10.0) enables unauthenticated network-reachable attackers to read arbitrary XML files accessible to the application process by supplying crafted selectors or poisoned index state to methods including frame_by_name, doc, lu, and header. The CVSS 4.0 score of 8.2 reflects high confidentiality impact (VC:H) tempered by high attack complexity (AC:H) and a required attack target condition (AT:P), meaning exploitation depends on application code that exposes these specific corpus reader methods to external input. No public exploit code and no CISA KEV listing have been identified at time of analysis.

RemediationAI

Upgrade NLTK to version 3.10.0 or later, which resolves the path traversal in FramenetCorpusReader and NKJPCorpusReader; the vendor advisory confirming this fix is at https://github.com/nltk/nltk/security/advisories/GHSA-568f-pv23-39p4. If an immediate upgrade is not feasible, apply the following compensating controls: first, audit all application code that instantiates FramenetCorpusReader or NKJPCorpusReader and ensure no externally-supplied string (HTTP parameter, API input, file upload) reaches the frame_by_name, doc, lu, or header methods without validation against an allowlist of known-safe corpus identifiers - this directly breaks the attack path with no functional side effects for legitimate use. Second, restrict the OS-level file permissions of the NLTK process account so it can only read the corpus root directory and explicitly required application directories, reducing the blast radius of any successful traversal. Third, consider running NLTK corpus operations in a sandboxed subprocess with a restricted filesystem view (e.g., via seccomp, containers, or chroot), which limits accessible files regardless of traversal. Note that installing the FrameNet or NKJP corpus data is a prerequisite for instantiating these readers; environments that have not downloaded these corpora are not exploitable via this vector.

Affected VersionsENISA

nltk 0 <3.10.0

Affected Packages

pypi nltk fix: 3.10.0

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

NLTK (Natural Language Toolkit) is a widely-used Python library for natural language processing tasks. The vulnerable components are FramenetCorpusReader, which reads Berkeley FrameNet lexical database data, and NKJPCorpusReader, which reads the National Corpus of Polish. CWE-73 (External Control of File Name or Path) identifies the root cause: user-supplied selector strings or poisoned index state are used to construct file system paths without adequate canonicalization or boundary enforcement, enabling traversal sequences to escape the intended corpus root directory. The affected methods - frame_by_name, doc, lu, and header - accept parameters that are used internally to locate and parse XML corpus files; when these parameters are attacker-controlled, NLTK's XML parser is directed to files entirely outside the corpus directory. The CPE string cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:* with a version ceiling of 3.10.0 covers all prior releases.

Know when Nltk 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 (VulnCheck) PRIMARY 8.2 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

AV:N for network-reachable attack path; AC:H maps from AT:P condition requiring application to expose corpus methods to attacker input; PR:N per description; C:H for arbitrary XML file read; no integrity or availability impact applies.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat 5.9 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 22, 2026 - 15:01 EUVD
CVE Published
Aug 22, 2026 - 14:12 cve.org
HIGH 8.2

DescriptionCVE.org

NLTK versions before 3.10.0 contain a path traversal vulnerability in FramenetCorpusReader and NKJPCorpusReader that allows attackers to parse XML files outside the corpus root by supplying unsafe selectors or poisoned index state. Attackers can exploit frame_by_name, doc, lu, and header methods with crafted parameters to read arbitrary XML files accessible to the application.

Executive ViewAI

Why It Matters

NLTK versions before 3.10.0 contain a path traversal vulnerability (CVE-2026-62385, CVSS 8.2) that could enable unauthorized access to XML files processed by affected applications. No public exploit identified at time of analysis. Organizations using NLTK-based NLP systems face data confidentiality risk, especially if corpus reader methods are exposed to user input; successful exploitation requires high attack complexity and specific application patterns. Patch to version 3.10.0 is available.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Medium
widely used Python NLP library in research and data science
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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 HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

61
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: +20
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.

More in Nltk

View all
CVE-2026-79657 CRITICAL POC
9.3 Aug 25

Arbitrary code execution in the Natural Language Toolkit (NLTK) before 3.10.3 allows attackers to bypass the library's p

CVE-2026-78683 CRITICAL POC
9.4 Aug 25

Arbitrary code execution in NLTK (Natural Language Toolkit) through 3.9.4 allows attackers to run Python code when a vic

CVE-2025-14009 HIGH POC
8.8 Feb 18

Arbitrary code execution in the NLTK (Natural Language Toolkit) Python library affects all versions through its data dow

CVE-2026-63312 HIGH POC
8.7 Aug 22

StreamBackedCorpusView in NLTK before 3.10.0 allows arbitrary local file reads by calling Python's builtins.open() direc

CVE-2026-62384 HIGH POC
8.7 Aug 22

Symlink-based path traversal in NLTK's FramenetCorpusReader before version 3.10.2 permits attackers with write access to

CVE-2026-66393 HIGH POC
8.7 Aug 22

Unbounded recursion in NLTK's JSONTaggedDecoder.decode_obj() (nltk/jsontags.py) allows unauthenticated remote attackers

CVE-2026-62388 HIGH POC
8.7 Aug 22

Path traversal and pickle deserialization protections in NLTK before 3.10.0 are effectively disabled by default - pathse

CVE-2026-78681 HIGH POC
8.7 Aug 25

XML Entity Expansion (Billion Laughs) in NLTK before 3.10.3 allows unauthenticated remote attackers to cause denial of s

CVE-2026-78682 HIGH POC
8.7 Aug 25

Server-side request forgery in NLTK before 3.10.3 allows unauthenticated remote attackers to reach internal HTTP service

CVE-2026-70626 HIGH POC
8.6 Aug 22

Symlink escape in NLTK's CorpusReader.open() allows local attackers to read arbitrary files outside the designated corpu

CVE-2021-43854 HIGH POC
7.5 Dec 23

NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research a

CVE-2021-3828 HIGH POC
7.5 Sep 27

nltk is vulnerable to Inefficient Regular Expression Complexity. Rated high severity (CVSS 7.5), this vulnerability is r

Vendor StatusVendor

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