Advisory details:
pypa / nltk/PYSEC-2026-3955
| Advisory ID | pypa/nltk/PYSEC-2026-3955 |
| Aliases |
CVE-2026-12372
GHSA-2jhm-w3mp-jcwr PYSEC-2026-3955 |
| Summary | 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. |
| Status | Published |
| Exploitability | 0.5 |
| Weighted Severity | 3.3 |
| Risk | 1.6 |
| Affected and Fixed Packages | Package Details |
| Introduced and Fixed Package Commit Patches | Package Commit Patches Details |
| There are no known CWE. |
| System | Score | Found at |
|---|---|---|
| cvssv3 | 3.7 | https://github.com/pypa/advisory-database/blob/main/vulns/nltk/PYSEC-2026-3955.yaml |
| Reference id | Reference type | URL |
|---|---|---|
| https://huntr.com/bounties/2911b643-571c-42e4-b0c2-9a1fa6f491db | ||
| GHSA-2jhm-w3mp-jcwr | https://github.com/advisories/GHSA-2jhm-w3mp-jcwr |
No EPSS data available for this advisory.
| Patch URL | |
|---|---|
| There are no known patches. | |
| Attack Vector (AV) | Attack Complexity (AC) | Privileges Required (PR) | User Interaction (UI) | Scope (S) | Confidentiality Impact (C) | Integrity Impact (I) | Availability Impact (A) |
|---|---|---|---|---|---|---|---|
network adjacent_network local physical |
low high |
none low high |
none required |
unchanged changed |
high low none |
high low none |
high low none |
There are no SSVC decisions available.