CVE-2026-78682

NLTK before 3.10.3 SSRF Protection Bypass via Proxy

Published Aug 25, 2026 CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Description
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.

Analysis

AI-generated

Technical impact

NLTK versions prior to 3.10.3 have a server‑side request forgery vulnerability in nltk.pathsec.urlopen and its callers. The function validates the hostname locally, but when an HTTP proxy is configured, proxy‑handler inheritance disables the safe HTTP/HTTPS handlers so the proxy performs the fetch without re‑validation. An attacker can trick the proxy into requesting an internal loopback‑only service by providing a validated public URL, resulting in disclosure of internal HTTP resources, loading of forged downloader indexes, and installation of attacker‑chosen package content.

Affected Systems

The NLTK library from the nltk vendor, in all versions earlier than 3.10.3. No other products are mentioned.

Risk and Exploitability

The CVSS score of 8.7 indicates high severity and the vulnerability could be exploited when the application is configured to use an HTTP proxy. The EPSS score is not available, but the lack of a KEV listing does not diminish the risk for environments that rely on the vulnerable library. An attacker with access to supply parameters to the vulnerable function can leverage the bypass to reach internal services and introduce malicious content.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade NLTK to version 3.10.3 or later (the fix is included in that release)
  • Remove or disable any HTTP proxy configuration for the application or ensure it does not forward requests to internal networks
  • If immediate upgrade is not possible, restrict the proxy to only allow outgoing connections to known external IPs and block loopback addresses

Generated by OpenCVE AI on August 25, 2026 at 04:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-6ww7-3frv-cqxh NLTK: pathsec SSRF protection can be bypassed when a proxy is configured
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description 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.
Title NLTK before 3.10.3 SSRF Protection Bypass via Proxy
First Time appeared Nltk
Nltk nltk
Weaknesses CWE-918
CPEs cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:*
Vendors & Products Nltk
Nltk nltk
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 8.7, 'vector': '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'}

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Oct 8, 2026, 3:25 PM
Reserved
Aug 25, 2026, 1:17 AM
Status
Analyzed
Published
Aug 25, 2026, 2:16 AM
Modified
Oct 12, 2026, 9:10 PM
Severity
Important
Public date
Aug 25, 2026, 1:30 AM