---
id: CVE-2025-14009
title: >-
  A critical vulnerability exists in the NLTK downloader component of nltk/nltk,
  affecting all versions
summary: >-
  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 a…
severity: high
cvss: 8.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-94
vendor: nltk
product: nltk
affected:
  - nltk < 3.9.3
patched:
  - nltk 3.9.3
published: '2026-02-18'
updated: '2026-06-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-14009'
references:
  - url: 'https://huntr.com/bounties/49ecbc02-054e-4470-b2e0-b267936cc4e4'
    label: security@huntr.dev
  - url: 'https://access.redhat.com/errata/RHSA-2026:10184'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/security/cve/CVE-2025-14009'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2440724'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://huntr.com/bounties/49ecbc02-054e-4470-b2e0-b267936cc4e4'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-14009.json
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2025-14009'
  - url: 'https://github.com/nltk/nltk/pull/3468'
  - url: >-
      https://github.com/nltk/nltk/commit/1056b323af6462455571302e766b67cf300aea18
  - url: 'https://github.com/nltk/nltk'
  - url: >-
      https://github.com/nltk/nltk/blob/4154eb85e832f266660a09286c7e37e308292284/ChangeLog#L1
  - url: >-
      https://github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-96.yaml
  - url: 'https://www.cve.org/CVERecord?id=CVE-2025-14009'
tags:
  - nvd
  - osv
  - pip
  - csaf
  - vex
  - red-hat
epss: 0.01036
epssPercentile: 0.6373
ingestedAt: '2026-07-03T18:53:52.432Z'
aliases:
  - GHSA-7p94-766c-hgjp
  - PYSEC-2026-96
ecosystem: pip
scores:
  nvd: 8.8
  osv: 10
  vendor: 8.8
---

## Overview

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.

## Affected

- `nltk < 3.9.3`

## Remediation

Upgrade past the affected range:

- `nltk 3.9.3`

## Package advisory (CVE-2025-14009)

Affected packages:

- `nltk < 3.9.3`

Patched in:

- `nltk 3.9.3`

Source: https://osv.dev/vulnerability/GHSA-7p94-766c-hgjp

## Vendor advisories

- **RHSA-2026:10184** · Red Hat · fixed in: Red Hat OpenShift AI 2.25 · released 2026-04-23 · [advisory](https://access.redhat.com/errata/RHSA-2026:10184)
- **Red Hat VEX** · Important · affected: OpenShift Lightspeed, Red Hat OpenShift AI (RHOAI) · no fix planned: OpenShift Lightspeed, Red Hat OpenShift AI (RHOAI) · updated 2026-10-15 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-14009.json)
