CVE-2025-14009 Zip Slip Vulnerability in nltk/nltk Leading to Remote Code Execution
Attackers can achieve remote code execution by crafting malicious zip packages that exploit path traversal in the NLTK downloader.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2025-14009?
CVE-2025-14009 is a critical path traversal vulnerability in nltk/nltk, published on 18 Feb 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
A critical vulnerability exists in the NLTK downloader component of nltk/nltk, affecting all versions. The _unzip_iter function in nltk/downloader.py uses zipfile.extractall() without performing path validation or security checks. This allows attackers to craft malicious zip packages that, when downloaded and extracted by NLTK, can execute arbitrary code. The vulnerability arises because NLTK assumes all downloaded packages are trusted and extracts them without validation. If a malicious package contains Python files, such as __init__.py, these files are executed automatically upon import, leading to remote code execution. This issue can result in full system compromise, including file system access, network access, and potential persistence mechanisms.
Weakness: CWE-94
Which versions are affected by CVE-2025-14009?
3 open source packages ship an affected version, including nltk. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
nltk PyPI | All versions | 3.9.3 |
nltk PyPI | All versions | 3.9.3 |
nltk PyPI | All versions | 3.9.3 |
Linux distribution packages (1)
python-nltk openSUSE:Tumbleweed | All versions | 3.9.1-3.1 |
Products include Nltk Nltk.
How do I fix CVE-2025-14009?
Upgrade nltk to 3.9.3 or later.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2025-14009 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2025-14009 exists.
Other vulnerabilities in nltk/nltk
- CVE-2026-0848 Arbitrary Code Execution in NLTK StanfordSegmenter via Untrusted JAR Loading
- CVE-2026-78683 NLTK before 3.10.0 Remote Code Execution via Unsafe Pickle Deserialization
- CVE-2026-79657 NLTK before 3.10.3 Remote Code Execution via Unsafe Pickle Deserialization
- CVE-2026-79675 NLTK before 3.10.3 JVM Argument Injection via Per-Call Options
- CVE-2026-79674 NLTK 3.10.2 Path Traversal via corpus-reader constructors
Sources
Also known as DEBIAN-CVE-2025-14009, ECHO-a2cb-9feb-100c, GHSA-7p94-766c-hgjp, PYSEC-2026-96, ROOT-APP-PYPI-CVE-2025-14009, UBUNTU-CVE-2025-14009 and 1 more.