Skip to main content

NLTK CVE-2026-79674

| EUVDEUVD-2026-65524 HIGH
External Control of File Name or Path (CWE-73)
2026-08-25 VulnCheck GHSA-3gq4-3j92-5w49 GHSA-rcw8-9qrw-27m2 PYSEC-2026-3736
8.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted corpus root path via API
  2. Delivery
    Application forwards path to LinThesaurusCorpusReader or PanLexLiteCorpusReader
  3. Exploit
    Pathsec sandbox boundary bypassed
  4. Execution
    Arbitrary file or SQLite database opened
  5. Impact
    Sensitive content returned to attacker

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 that the calling application pass externally controlled input as the corpus root path argument to LinThesaurusCorpusReader or PanLexLiteCorpusReader; NLTK corpus readers that do not accept external root paths, or applications that hardcode the corpus root to a fixed value, are not exploitable via this vulnerability. The CVSS 4.0 vector (PR:N/UI:N/AV:N) applies only to deployments where these constructors are reachable from an untrusted network context - this is a non-default application design pattern requiring explicit exposure. Exploitation is bounded by the OS-level permissions of the NLTK process: only files readable by that process account can be accessed, and privilege escalation beyond the process's existing OS permissions is not described. The pathsec bypass targets specifically the two named constructors; other NLTK components are not described as affected.

Impact

The CVSS 4.0 score of 8.8 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N) reflects the worst-case scenario: a network-accessible application that exposes the affected constructors to unauthenticated user-supplied input. High confidentiality impact (VC:H) is well-supported by the ability to read arbitrary files and SQLite databases accessible to the NLTK process; the low integrity impact (VI:L) is not fully explained by the description, which emphasizes read access, and should be independently verified against the upstream advisory. EPSS data was not provided in the available intelligence, so exploitation probability cannot be quantified numerically. No active exploitation is confirmed - neither CISA KEV nor a public POC is present in the sourced data. Practically, NLTK is predominantly deployed in offline or internal data-science environments where corpus-reader constructors are not exposed to external input, which would significantly reduce real-world exploitability below what the raw CVSS score implies; however, any deployment embedding NLTK in a web API that accepts corpus path parameters without sanitization faces genuine high-severity risk.

Exploit ScenarioDerived

An attacker identifies a web API that accepts a corpus name or root path parameter and forwards it directly to PanLexLiteCorpusReader or LinThesaurusCorpusReader. By supplying a crafted path such as an absolute path to /etc/shadow or a relative traversal sequence targeting application configuration files or credential databases, the attacker causes NLTK to open and return content from outside the intended data directory. No public POC has been identified at time of analysis, but the attack requires no specialized tooling beyond a standard HTTP client capable of sending a crafted request.

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

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

Alert me

AnalysisAIv1 – Aug 25, 2026

Path traversal in NLTK before 3.10.3 exposes arbitrary filesystem content and SQLite databases by bypassing the library's pathsec sandbox boundary. The LinThesaurusCorpusReader and PanLexLiteCorpusReader constructors accept caller-supplied corpus root paths without enforcing the intended data-root restriction, enabling CWE-73 (External Control of File Name or Path) exploitation wherever applications forward user-controlled input to these constructors. No public exploit or CISA KEV listing has been identified at time of analysis; real-world severity is highly dependent on whether the affected constructors are reachable from an untrusted network path in the deploying application.

RemediationAI

The primary fix is to upgrade NLTK to version 3.10.3 or later, which closes the pathsec sandbox bypass in the affected corpus-reader constructors; the vendor advisory at https://github.com/nltk/nltk/security/advisories/GHSA-3gq4-3j92-5w49 confirms this release. For applications where an immediate upgrade is not feasible, remove any code path that forwards user-controlled strings as the corpus root argument to LinThesaurusCorpusReader or PanLexLiteCorpusReader; if dynamic corpus roots are a product requirement, enforce a strict allowlist of pre-approved absolute paths before passing values to these constructors. As a defense-in-depth measure, run the NLTK process under a dedicated low-privilege OS account and apply filesystem-level access controls - such as a container read-only mount or chroot - restricting accessible directories to only the intended NLTK data root, which limits the blast radius if exploitation occurs. Be aware that overly restrictive filesystem controls may break other NLTK corpus readers that legitimately require access to the data root.

Affected VersionsENISA

nltk 0 <3.10.3

Affected Packages

pypi nltk fix: 3.10.3

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 Python platform for human language data processing, widely used in NLP research and data-science pipelines. The vulnerability is localized to two corpus-reader classes - LinThesaurusCorpusReader, which reads Lin's distributional thesaurus data, and PanLexLiteCorpusReader, which accesses a PanLex Lite SQLite database - both of which accept a root directory path as a constructor argument. NLTK implements a pathsec sandbox mechanism intended to confine corpus file access to a designated data root; CWE-73 (External Control of File Name or Path) describes the root cause: neither constructor validates or sanitizes the caller-supplied root before using it in filesystem operations, so the sandbox boundary can be bypassed by supplying an arbitrary absolute path or a path-traversal sequence. The affected scope covers all NLTK releases matching CPE cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:* prior to version 3.10.3.

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.8 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.2 HIGH

Network vector and no privileges reflect web-API exposure of the constructors; S:U because exploitation stays within the process boundary with no scope change to other systems.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

2
Patch available
Aug 25, 2026 - 17:17 EUVD
CVE Published
Aug 25, 2026 - 15:16 cve.org
HIGH 8.8

DescriptionCVE.org

NLTK versions before 3.10.3 contain a path sandbox bypass vulnerability in corpus-reader constructors that allows attackers to read files outside the intended data root. Attackers can supply arbitrary corpus root paths to LinThesaurusCorpusReader and PanLexLiteCorpusReader constructors to access filesystem content and SQLite databases outside the pathsec sandbox boundary.

Blast Radius

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

Ecosystem-wide dependent count for version 3.10.3.

Executive ViewAI

Why It Matters

NLTK (Natural Language Toolkit) versions prior to 3.10.3 contain a path traversal vulnerability (CVSS 8.8) that could expose sensitive files and databases if applications pass user-controlled input to corpus constructors. Organizations running NLTK in production face data exposure risk, particularly if these components are accessible from untrusted networks. With no vendor patch available, risk mitigation depends on immediate inventory, input validation controls, and upgrade planning.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Implement strict input validation to restrict user-supplied corpus paths to whitelisted directories; isolate NLTK components from direct network access and untrusted users; apply network segmentation for systems processing sensitive data; monitor NLTK releases and stage version 3.10.3 or later for immediate deployment upon availability; audit application logs for anomalous file access patterns if these constructors are in-scope.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
widely used Python NLP library, primarily in research and internal data pipelines
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD 🇯🇵JVN 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.2%
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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-2026-62385 HIGH POC
8.2 Aug 22

Path traversal in NLTK's FramenetCorpusReader and NKJPCorpusReader (all versions before 3.10.0) enables unauthenticated

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

Vendor StatusVendor

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