← Back to CVE Explorer

CVE-2026-12261

Full vulnerability record from the local CVENow database.

Description

A vulnerability in `nltk.downloader` in nltk/nltk versions <= 3.9.4 allows for cross-package resource and model poisoning. The downloader extracts package archives into shared namespaces such as `corpora/` and `taggers/` instead of package-isolated roots, and validates package integrity only after the archive has been written and extracted. This design flaw enables one package to overwrite another package's trusted resources within the same namespace, making the changes immediately active through ordinary NLTK APIs. This issue persists across fresh interpreter restarts and can affect downstream workflows, including machine learning pipelines and reproducibility-sensitive environments.

Severity
MEDIUM
CVSS score
6.5 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-08-07 07:16:26.377000
Last modified
2026-10-23 21:10:00.157000
View original CVE JSON
{
  "id": "CVE-2026-12261",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-07T07:16:26.377",
  "lastModified": "2026-10-23T21:10:00.157",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "A vulnerability in `nltk.downloader` in nltk/nltk versions <= 3.9.4 allows for cross-package resource and model poisoning. The downloader extracts package archives into shared namespaces such as `corpora/` and `taggers/` instead of package-isolated roots, and validates package integrity only after the archive has been written and extracted. This design flaw enables one package to overwrite another package's trusted resources within the same namespace, making the changes immediately active through ordinary NLTK APIs. This issue persists across fresh interpreter restarts and can affect downstream workflows, including machine learning pipelines and reproducibility-sensitive environments."
    },
    {
      "lang": "es",
      "value": "Una vulnerabilidad en “nltk.downloader” en versiones de nltk/nltk menor o igual que 3.9.4 permite el envenenamiento de recursos y modelos entre paquetes. El descargador extrae archivos de paquetes en espacios de nombres compartidos como “corpora/” y “taggers/” en lugar de raíces aisladas por paquete, y valida la integridad del paquete solo después de que el archivo ha sido escrito y extraído. Este fallo de diseño permite que un paquete sobrescriba los recursos confiables de otro paquete dentro del mismo espacio de nombres, haciendo que los cambios estén inmediatamente activos a través de las API ordinarias de NLTK. Este problema persiste a través de reinicios limpios del intérprete y puede afectar los flujos de trabajo posteriores, incluyendo las tuberías de aprendizaje automático y entornos sensibles a la reproducibilidad."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "nltk",
          "product": "nltk/nltk",
          "versions": [
            {
              "version": "unspecified",
              "lessThanOrEqual": "latest",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Primary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N",
          "baseScore": 6.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "HIGH",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 3.6
      }
    ],
    "cvssMetricV30": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.0",
          "vectorString": "CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N",
          "baseScore": 5.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "HIGH",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 1.6,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-07T15:25:29.448356Z",
          "id": "CVE-2026-12261",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-284"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:*",
              "versionEndIncluding": "3.9.4",
              "matchCriteriaId": "61FCC90A-0162-444E-922A-DDFBD189AD71"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://huntr.com/bounties/8b8c381e-08a8-4e4f-bb46-a320c96a364f",
      "source": "[email protected]",
      "tags": [
        "Permissions Required"
      ]
    },
    {
      "url": "https://huntr.com/bounties/8b8c381e-08a8-4e4f-bb46-a320c96a364f",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
      "tags": [
        "Permissions Required"
      ]
    }
  ]
}