Skip to main content

NLTK EUVDEUVD-2026-65228

| CVE-2026-78682 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-08-25 VulnCheck GHSA-6ww7-3frv-cqxh GHSA-crp9-r7rq-c8cg PYSEC-2026-3733
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted public URL to NLTK data.load or Downloader
  2. Delivery
    Local pathsec hostname validation passes
  3. Exploit
    Proxy-handler inheritance replaces safe URL handlers
  4. Execution
    Proxy forwards request to internal/loopback target
  5. Persist
    Internal HTTP resource disclosed or malicious downloader index loaded
  6. Impact
    Attacker-chosen NLTK package content installed

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that an HTTP proxy be configured in the environment running NLTK - typically via the HTTP_PROXY or HTTPS_PROXY environment variables or equivalent urllib proxy settings. Without a proxy, the safe URL handlers remain in place and the SSRF bypass does not occur. Additionally, the attacker must be able to supply a URL (or influence one) that is passed to nltk.pathsec.urlopen, nltk.data.load, Downloader.index, or Downloader.download; in many deployments these are called with hardcoded internal resource paths, limiting exploitability. Exploitation is further constrained to HTTP-reachable internal targets that the proxy can forward to. Limiting factors: non-default proxy configuration required; attacker must control or influence the URL argument; targets limited to HTTP-accessible internal services reachable from the proxy host.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N) places this at a high base score, but several factors modulate real-world priority. The most important limiting factor is the proxy requirement: NLTK deployments without a configured HTTP proxy are not exploitable, substantially shrinking the vulnerable population relative to the unauthenticated network vector alone. Conversely, the description reveals an integrity impact - forged downloader indexes enabling installation of attacker-chosen package content - that the base vector's VI:N does not capture, suggesting the provided CVSS 4.0 vector underestimates actual impact. VulnCheck has published an advisory but no CISA KEV listing or confirmed public exploit code exists at time of analysis; EPSS probability data was not provided. The realistic priority is moderate-to-high for proxy-configured CI/CD pipelines, shared NLP inference infrastructure, and any service that passes user-influenced URLs to nltk.data.load at runtime; organizations running NLTK in airgapped or proxy-free environments face negligible risk from this specific vector.

Exploit ScenarioDerived

An attacker targeting a data-science API that accepts a user-supplied corpus URL and passes it to nltk.data.load constructs a URL pointing to a legitimate public hostname. Because the deployment runs behind a corporate HTTP proxy, the proxy resolves the supplied hostname to an internal metadata service (e.g., 169.254.169.254 on a cloud instance); NLTK's local validation cleared the public hostname and never re-checks the proxy's resolved destination. The proxy returns the metadata service's response to the attacker, disclosing cloud credentials or internal configuration. No public exploit code has been identified at time of analysis.

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

Server-side request forgery in NLTK before 3.10.3 allows unauthenticated remote attackers to reach internal HTTP services and load attacker-controlled downloader indexes when an HTTP proxy is configured. The flaw sits in nltk.pathsec.urlopen and its callers (nltk.data.load, nltk.downloader.Downloader.index, nltk.downloader.Downloader.download): local hostname validation passes the supplied public URL, but proxy-handler inheritance then replaces NLTK's safe URL handlers so the actual fetch is executed by the proxy against an internally-resolvable destination that is never re-validated. No public exploit code or CISA KEV listing has been identified at time of analysis; the CVSS 4.0 base score is 8.7, reflecting high confidentiality impact under network-accessible, unauthenticated conditions.

RemediationAI

Upgrade NLTK to version 3.10.3 or later, which resolves the proxy-handler inheritance flaw in pathsec.urlopen. The vendor advisory is at https://github.com/nltk/nltk/security/advisories/GHSA-6ww7-3frv-cqxh. If immediate upgrade is not possible, the most effective compensating control is to unset or block HTTP_PROXY and HTTPS_PROXY environment variables in processes that run NLTK, eliminating the proxy-handler substitution path entirely; the trade-off is that legitimate proxy routing for NLTK network calls will also be disabled. Alternatively, network-level egress filtering on hosts running NLTK can block proxy-forwarded requests to RFC-1918 and loopback ranges, mitigating the internal-resource disclosure scenario without removing proxy functionality. Restricting calls to nltk.data.load and Downloader to pre-vetted, static resource URLs via configuration is a further defence-in-depth measure. Do not pass user-supplied strings directly to these NLTK functions in web-facing or multi-tenant services.

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, cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:*) is a foundational Python library for NLP used across research, education, and production data-science pipelines. The vulnerability is rooted in CWE-918 (Server-Side Request Forgery): the pathsec module validates a requested URL hostname locally against an allowlist/blocklist, but when an HTTP proxy is active (commonly via the HTTP_PROXY or HTTPS_PROXY environment variables), Python's urllib machinery substitutes NLTK's custom safe handlers with standard ProxyHandler subclasses. The ProxyHandler relays the original - already-validated - public URL to the proxy, which then resolves and connects to whatever address it maps to internally, including loopback addresses, RFC-1918 ranges, or cloud-metadata endpoints. NLTK never re-validates the proxy's resolved destination. Callers of pathsec.urlopen - specifically nltk.data.load, Downloader.index, and Downloader.download - inherit the flaw, meaning corpus loading and package installation workflows are all attack surfaces.

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

AC:H reflects the non-default proxy requirement; S:C because the proxy fetches internal resources outside the application's trust boundary; I:L for attacker-influenced package installation.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A: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
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 25, 2026 - 03:16 EUVD
CVE Published
Aug 25, 2026 - 01:30 cve.org
HIGH 8.7

DescriptionCVE.org

NLTK before 3.10.3 contains a server-side request forgery vulnerability in nltk.pathsec.urlopen (and callers nltk.data.load, nltk.downloader.Downloader.index/download) when an HTTP proxy is configured. pathsec.urlopen validates the requested hostname locally, but proxy-handler inheritance disables the safe HTTP/HTTPS handlers so the actual fetch is performed by the proxy against a destination that is never re-validated. An attacker can supply a validated public URL that the proxy forwards to an internal loopback-only service, allowing disclosure of internal HTTP resources, loading of forged downloader indexes, and installation of attacker-chosen package content.

Blast Radius

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

Ecosystem-wide dependent count for version 3.10.3.

Executive ViewAI

Why It Matters

NLTK (Natural Language Toolkit), a Python library used for natural language processing across data science and analytics workflows, contains an unauthenticated server-side request forgery vulnerability that exposes internal HTTP services in proxy-configured environments. Organizations using NLTK face potential unauthorized access to internal systems and data exfiltration, with particular risk in cloud and hybrid network architectures where proxy handling is standard.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable HTTP proxy configuration for NLTK data downloads and index loading; (2) Implement network-level access controls to prevent NLTK processes from connecting to internal HTTP services; (3) Host NLTK data and indexes on an internal artifact repository with strict access controls; (4) Use network segmentation to isolate NLTK-dependent applications from sensitive internal systems.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Medium
popular Python NLP library, primarily research and data-science deployments
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High

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

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

Related Vulnerabilities in NLTK Unsafe Deserialization and SSRF Flaws

View all 4

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

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

SUSE

Severity: Important

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