ZeroHour

CVE-2026-59974

large

Zip Path Traversal (Zip Slip) in Stanford NLP Stanza Model Extraction

CVSS 3.1
7.8 high
EPSS
Published
()
Modified
AI analysis

Stanza, Stanford NLP's Python library for tokenization, NER, and parsing, contains a zip path traversal flaw in stanza.resources.common.unzip (stanza/resources/common.py), which passes downloaded model and resource archives directly to zipfile.ZipFile.extractall without validating member paths. The vulnerable extraction path is reachable through the commonly used stanza.download and stanza.install_corenlp functions, so a malicious archive containing parent-directory traversal entries can write files outside the intended model directory. An attacker who can supply or tamper with the archive (for example via a compromised mirror, proxy, or man-in-the-middle download) gains arbitrary file writes with the privileges of the Stanza process, potentially achieving code execution by overwriting shell configuration, SSH authorized_keys, Python packages, or executable scripts. Anyone running Stanza prior to version 1.14.0 is affected. No public proof-of-concept or confirmed exploitation is known, and the flaw is not listed in CISA's KEV catalog.

What to do: Upgrade Stanza to version 1.14.0 or later, which validates archive member paths before extraction. Until upgraded, avoid running stanza.download or stanza.install_corenlp from untrusted networks, proxies, or unofficial model mirrors, and review model directories plus shell startup files, ~/.ssh/authorized_keys, site-packages, and scripts for unexpected modifications on hosts where untrusted downloads occurred.

Affected
Stanford NLP StanzaAll versions prior to 1.14.0
Estimated exposure
large≈100,000s of Python environments running vulnerable Stanza versions (library sees large PyPI download volume), though only those fetching models over an… — Estimated from Stanza's wide adoption as a popular open-source NLP library (heavy PyPI download traffic and broad academic/production use); the vulnerable code path is routine (stanza.download/install_corenlp), but actual exploitation…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Stanza is a Stanford NLP Python library for tokenization, sentence segmentation, NER, and parsing of many human languages. Prior to 1.14.0, stanza.resources.common.unzip in stanza/resources/common.py passes downloaded model and resource archives to zipfile.ZipFile.extractall without validating member paths, and the vulnerable extraction path is reachable through stanza.download and stanza.install_corenlp. A malicious archive containing parent-directory traversal entries can write outside the intended model directory, allowing files writable by the Stanza process to be overwritten and potentially enabling code execution through modified shell configuration, SSH authorization data, Python packages, or executable scripts. This issue is fixed in version 1.14.0.

Weakness
CWE-22
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.