nltk — security advisory
NLTK before 3.10.0 (affected versions <= 3.9.4) contains a server-side request forgery (SSRF) vulnerability in the validate_network_url() function in nltk/pathsec.py. The _resolve_hostname() helper catches OSError and ValueError during socket.getaddrinfo() and returns an empty list; when DNS resolution fails, the validation loop executes no IP checks and the function fails open, allowing urlopen() to proceed without validation. An attacker who can trigger DNS resolution failures or use DNS rebinding can bypass SSRF protections and reach restricted network resources, including cloud metadata endpoints (e.g., 169.254.169.254).
- Products
- nltk
- Affected versions
- 3.10.0-1, 3.10.1-1, 3.10.3-1, 3.8-1, 3.8.1-1, 3.9.1-1, 3.9.1-2, 3.9.2-1, 3.9.3-1
- Fixed versions
- 3.10.0-1
- CVEs
- CVE-2026-63311
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 30 Oct 2026, 16:42 UTC · Revision 1
Source evidence
NLTK before 3.10.0 (affected versions <= 3.9.4) contains a server-side request forgery (SSRF) vulnerability in the validate_network_url() function in nltk/pathsec.py. The _resolve_hostname() helper catches OSError and ValueError during socket.getaddrinfo() and returns an empty list; when DNS resolution fails, the validation loop executes no IP checks and the function fails open, allowing urlopen() to proceed without validation. An attacker who can trigger DNS resolution failures or use DNS rebinding can bypass SSRF protections and reach restricted network resources, including cloud metadata endpoints (e.g., 169.254.169.254).
osv:DEBIAN-CVE-2026-63311
nltk
Fixed versions: Not specified
nltk
Fixed versions: Not specified
nltk
Fixed versions: 3.10.0-1
Complete source record
{
"id": "0a5d3ad2c6666bd762b4455d509c200b5a731615bcf20bfc499bdb7b4ac2fb39",
"url": "https://osv.dev/vulnerability/DEBIAN-CVE-2026-63311",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "DEBIAN-CVE-2026-63311",
"summary": "NLTK before 3.10.0 (affected versions <= 3.9.4) contains a server-side request forgery (SSRF) vulnerability in the validate_network_url() function in nltk/pathsec.py. The _resolve_hostname() helper catches OSError and ValueError during socket.getaddrinfo() and returns an empty list; when DNS resolution fails, the validation loop executes no IP checks and the function fails open, allowing urlopen() to proceed without validation. An attacker who can trigger DNS resolution failures or use DNS rebinding can bypass SSRF protections and reach restricted network resources, including cloud metadata endpoints (e.g., 169.254.169.254).",
"evidence": "osv:DEBIAN-CVE-2026-63311",
"products": [
{
"name": {
"value": "nltk",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "3.10.0-1",
"evidence": "/affected/0/versions"
},
{
"value": "3.10.1-1",
"evidence": "/affected/0/versions"
},
{
"value": "3.10.3-1",
"evidence": "/affected/0/versions"
},
{
"value": "3.8-1",
"evidence": "/affected/0/versions"
},
{
"value": "3.8.1-1",
"evidence": "/affected/0/versions"
},
{
"value": "3.9.1-1",
"evidence": "/affected/0/versions"
},
{
"value": "3.9.1-2",
"evidence": "/affected/0/versions"
},
{
"value": "3.9.2-1",
"evidence": "/affected/0/versions"
},
{
"value": "3.9.3-1",
"evidence": "/affected/0/versions"
}
]
},
{
"name": {
"value": "nltk",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "3.10.0-1",
"evidence": "/affected/1/versions"
},
{
"value": "3.10.1-1",
"evidence": "/affected/1/versions"
},
{
"value": "3.10.3-1",
"evidence": "/affected/1/versions"
},
{
"value": "3.9.1-2",
"evidence": "/affected/1/versions"
},
{
"value": "3.9.2-1",
"evidence": "/affected/1/versions"
},
{
"value": "3.9.3-1",
"evidence": "/affected/1/versions"
}
]
},
{
"name": {
"value": "nltk",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.10.0-1",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": [
{
"value": "3.9.1-2",
"evidence": "/affected/2/versions"
},
{
"value": "3.9.2-1",
"evidence": "/affected/2/versions"
},
{
"value": "3.9.3-1",
"evidence": "/affected/2/versions"
}
]
}
],
"severity": "medium",
"structured": {
"id": "DEBIAN-CVE-2026-63311",
"aliases": [
"DEBIAN-CVE-2026-63311"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X"
}
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "nltk",
"purl": "pkg:deb/debian/nltk?arch=source&distro=bookworm",
"ecosystem": "Debian:12"
},
"versions": [
"3.10.0-1",
"3.10.1-1",
"3.10.3-1",
"3.8-1",
"3.8.1-1",
"3.9.1-1",
"3.9.1-2",
"3.9.2-1",
"3.9.3-1"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-63311.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "nltk",
"purl": "pkg:deb/debian/nltk?arch=source&distro=trixie",
"ecosystem": "Debian:13"
},
"versions": [
"3.10.0-1",
"3.10.1-1",
"3.10.3-1",
"3.9.1-2",
"3.9.2-1",
"3.9.3-1"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-63311.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.10.0-1"
}
]
}
],
"package": {
"name": "nltk",
"purl": "pkg:deb/debian/nltk?arch=source&distro=forky",
"ecosystem": "Debian:14"
},
"versions": [
"3.9.1-2",
"3.9.2-1",
"3.9.3-1"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-63311.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
}
],
"modified": "2026-10-15T09:47:37.439581020Z",
"provider": "osv",
"upstream": [
"CVE-2026-63311"
],
"references": [
"https://security-tracker.debian.org/tracker/CVE-2026-63311"
]
},
"related_cves": [
{
"value": "CVE-2026-63311",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 328017,
"published_at": "2026-08-22T15:16:19.233+00:00"
}