Skip to main content

NLTK EUVDEUVD-2026-52226

| CVE-2026-12259 MEDIUM
Download of Code Without Integrity Check (CWE-494)
5.3
CVSS 3.0 · Vendor: huntr_ai
Share

Severity by source

Vendor (huntr_ai) PRIMARY
5.3 MEDIUM
AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N
vuln.today AI
5.3 MEDIUM

Network vector with AC:H reflects mandatory MITM or mirror-compromise prerequisite; PR:N as no victim-system privileges are needed; UI:R as user must invoke the downloader; I:H for silent integrity violation; C:N and A:N as no data exposure or disruption occurs.

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

Primary rating from Vendor (huntr_ai).

CVSS VectorVendor: huntr_ai

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

2
Analysis Generated
Aug 03, 2026 - 08:28 vuln.today
CVE Published
Aug 03, 2026 - 07:09 cve.org
MEDIUM 5.3

Blast Radius

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

Ecosystem-wide dependent count for version 3.9.3.

DescriptionCVE.org

In nltk version 3.9.4, the nltk.downloader.Downloader._download_package() function writes downloaded package bytes to disk and may extract them before enforcing SHA-256 or MD5 checksum validation. This allows an attacker to tamper with the package response body for info.url through a compromised mirror, malicious proxy, or other source-substitution condition, leading to the installation of attacker-controlled package bytes. The vulnerability can result in malicious corpus or model content being trusted by downstream users or applications.

AnalysisAI

NLTK's downloader in version 3.9.4 installs attacker-controlled package bytes by writing and potentially extracting downloaded content before enforcing SHA-256 or MD5 checksum validation. Any user or CI pipeline invoking nltk.download() against a compromised mirror, rogue proxy, or network-level MITM is at risk of silently installing malicious corpora or model files. No public exploit identified at time of analysis; active exploitation not confirmed (no CISA KEV listing). The AC:H CVSS metric correctly reflects the non-trivial infrastructure access an attacker must achieve, but the downstream trust propagation - NLP applications consuming poisoned models - amplifies the realistic impact beyond the base score.

Technical ContextAI

NLTK (Natural Language Toolkit) is a foundational Python library for NLP tasks, shipping a built-in Downloader class that fetches corpora, tokenizers, and pre-trained models from configured mirrors over HTTP/HTTPS. The vulnerable function nltk.downloader.Downloader._download_package() violates the 'verify before trust' principle by persisting downloaded bytes to disk and potentially decompressing archives prior to computing and comparing the expected SHA-256 or MD5 digest. CWE-494 (Download of Code Without Integrity Check) precisely describes this root cause: the integrity gate is positioned after the data has already been written rather than acting as a pre-condition to storage. The affected CPE is cpe:2.3:a:nltk:nltk/nltk:*:*:*:*:*:*:*:*, with the description specifically naming version 3.9.4. The wildcard CPE suggests the flaw may span a broader version range, but only 3.9.4 is confirmed in the report.

RemediationAI

No vendor-released patch identified at time of analysis - the huntr.ai report references the flaw but no fixed NLTK release version is cited in the available data. Upstream fix availability via PR or commit is unconfirmed from the provided references. Until a patched release is confirmed, the most effective compensating control is to avoid using NLTK's built-in downloader over untrusted network paths: restrict all nltk.download() calls to HTTPS-only connections to the official NLTK data server and disable custom mirror configurations. In CI/CD pipelines, pre-stage NLTK data as verified artifacts in a controlled internal registry rather than fetching at build time, eliminating the live download vector entirely. Organizations that must use the downloader should manually verify downloaded package hashes against known-good values from the official NLTK data repository before use. Monitor https://huntr.com/bounties/659ccf6d-12d4-4d4a-84c0-078633c35a5d and the NLTK GitHub releases page for patch publication.

More in Nltk

View all
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-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

CVE-2019-14751 HIGH POC
7.5 Aug 22

NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a .

CVE-2026-0848 CRITICAL
10.0 Mar 05

Remote code execution in NLTK (Natural Language Toolkit) versions ≤3.9.2 allows unauthenticated attackers to execute arb

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-2026-79675 CRITICAL POC
9.3 Aug 25

Argument injection in the Natural Language Toolkit (NLTK) Python library before 3.10.3 allows attackers who control the

CVE-2026-71513 HIGH
8.7 Aug 22

Remote code execution in NLTK's TransitionParser component allows arbitrary OS command execution when a victim loads a c

CVE-2026-79674 HIGH POC
8.8 Aug 25

Path traversal in NLTK before 3.10.3 exposes arbitrary filesystem content and SQLite databases by bypassing the library'

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

Vendor StatusVendor

SUSE

Severity: Moderate

Share

EUVD-2026-52226 vulnerability details – vuln.today

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