CVE-2026-12372: NLTK network URL validation permits SSRF to RFC 6598 shared-address-space hosts
(updated )
A Server-Side Request Forgery (SSRF) vulnerability exists in nltk/nltk versions 3.9.4 and the current develop branch. The nltk.pathsec.validate_network_url() function, intended to prevent SSRF by rejecting internal network addresses, fails to reject IPs in the RFC 6598 shared address space (100.64.0.0/10). This occurs because Python’s ipaddress module does not classify such addresses as is_private or is_global, and the current guard only checks is_private and a few explicit categories. An attacker who can influence a URL passed to NLTK’s network-loading helpers can exploit this vulnerability to make a strict-mode application send requests to shared-address-space hosts, potentially exposing non-public infrastructure reachable from the application host. The impact is limited to SSRF-style confidentiality exposure, with no code execution claimed.
References
- github.com/advisories/GHSA-2jhm-w3mp-jcwr
- github.com/nltk/nltk/commit/4a820afa58810cd05049b6c6eae306694d6cfe65
- github.com/nltk/nltk/releases/tag/v3.10.0
- github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-3955.yaml
- huntr.com/bounties/2911b643-571c-42e4-b0c2-9a1fa6f491db
- nvd.nist.gov/vuln/detail/CVE-2026-12372
Code Behaviors & Features
Detect and mitigate CVE-2026-12372 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →