Skip to content
Heist/ feed
Back to feed
High

NLTK 3.10.0 through 3.10.2 Remote Code Execution via AllowlistUnpickler Dotted-Name Bypass

Type: advisorySources: OSV

NLTK before 3.10.3 contains a remote code execution vulnerability in AllowlistUnpickler that validates only the pickle module string and not the global name, allowing attackers to resolve dotted names by attribute traversal to callables outside the allowlisted namespace. Attackers can craft untrusted transition-parser models that execute arbitrary commands when TransitionParser.parse loads the model through allowlisted_pickle_load.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-71513
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 07:58 UTC · Revision 1

Source evidence

NLTK 3.10.0 through 3.10.2 Remote Code Execution via AllowlistUnpickler Dotted-Name Bypass

core-osv · Original source

Published 22 Aug 2026, 13:34 UTC

NLTK before 3.10.3 contains a remote code execution vulnerability in AllowlistUnpickler that validates only the pickle module string and not the global name, allowing attackers to resolve dotted names by attribute traversal to callables outside the allowlisted namespace. Attackers can craft untrusted transition-parser models that execute arbitrary commands when TransitionParser.parse loads the model through allowlisted_pickle_load.

osv:CVE-2026-71513
Complete source record
{
  "id": "bb077487f43a55e95a20dd52a42906c57d3da68750d5983cbbf31e8768ced15f",
  "url": "https://osv.dev/vulnerability/CVE-2026-71513",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "NLTK 3.10.0 through 3.10.2 Remote Code Execution via AllowlistUnpickler Dotted-Name Bypass",
    "summary": "NLTK before 3.10.3 contains a remote code execution vulnerability in AllowlistUnpickler that validates only the pickle module string and not the global name, allowing attackers to resolve dotted names by attribute traversal to callables outside the allowlisted namespace. Attackers can craft untrusted transition-parser models that execute arbitrary commands when TransitionParser.parse loads the model through allowlisted_pickle_load.",
    "evidence": "osv:CVE-2026-71513",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-71513",
      "aliases": [
        "CVE-2026-71513",
        "GHSA-5gh2-94qg-qppq",
        "PYSEC-2026-3867"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/nltk/nltk",
              "type": "GIT",
              "events": [
                {
                  "introduced": "bd49f9011d7dc8c6a36b3c4ae71f04060c9b3fb9"
                },
                {
                  "fixed": "303f6e2ba8e4548a5f54fd65d86bb5c9a949f1db"
                },
                {
                  "fixed": "c3e37113742a1ebeeb4f2ca58941f320f98805ea"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "3.10.0"
                      },
                      {
                        "fixed": "3.10.3"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "fixed": "c3e37113742a1ebeeb4f2ca58941f320f98805ea"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.10.2-rc1",
            "v3.10.2",
            "v3.10.1",
            "v.3.10.1",
            "v3.10.1-rc2",
            "v3.10.0-rc2",
            "v3.10.0",
            "v3.10.1-rc1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-71513.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:33.803360577Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71513.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-71513",
        "https://www.vulncheck.com/advisories/nltk-through-remote-code-execution-via-allowlistunpickler-dotted-name-bypass",
        "https://github.com/nltk/nltk/commit/c3e37113742a1ebeeb4f2ca58941f320f98805ea",
        "https://github.com/nltk/nltk",
        "https://github.com/nltk/nltk/blob/v3.10.2/nltk/picklesec.py#L119-L124"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-502"
        ],
        "cna_assigner": "VulnCheck",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71513.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-71513",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 501002,
  "published_at": "2026-08-22T13:34:07.811+00:00"
}