p PatchFirst

PatchFirst · Latest vulnerabilities

nltk vulnerabilities

Vulnerabilities published for nltk in the last 30 days: 1. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Clear filters

Vulnerabilities: 31

  1. CVE-2026-109956

    High · CVSS 8.3EPSS 0.32%No fix published

    NLTK through 3.10.3 Path Traversal via WekaClassifier Model Path

    NLTK through 3.10.3 contains a path traversal vulnerability in WekaClassifier that allows attackers to bypass nltk.pathsec containment by supplying unvalidated model paths. Attackers controlling the model_filename or model argument can make the weka JVM write files via -d or probe files via -l outside allowed data roots.

    Published Updated
  2. CVE-2026-81726

    High · CVSS 8.3EPSS 0.34%No fix published

    NLTK through 3.10.3 Path Traversal via Model-Artifact APIs

    NLTK through 3.10.3 contains a path traversal vulnerability in model-artifact APIs that bypass pathsec enforcement by using raw file operations on caller-controlled paths. Attackers can read or write files outside allowed sandbox roots through TransitionParser, AveragedPerceptron, PerceptronTagger, and maxent parameter APIs when pathsec is enabled.

    Published Updated
  3. CVE-2026-70626

    High · CVSS 8.6EPSS 0.2%No fix published

    NLTK before 3.9.4 Symlink Escape via CorpusReader

    NLTK versions before 3.9.4 contain a symlink escape vulnerability in CorpusReader.open() that allows local attackers to read arbitrary files outside the corpus root. The vulnerability exists because path validation is lexical and does not account for symlink resolution, enabling attackers to place symlinks inside the corpus root to access files outside the intended boundary.

    Published Updated
  4. CVE-2026-65915

    High · CVSS 7.1EPSS 0.41%No fix published

    NLTK before 3.10.0 Arbitrary File Read via FileSystemPathPointer

    NLTK versions before 3.10.0 contain a logic bug in FileSystemPathPointer.open() where the sandbox validation check compares a normalized path against itself, making the security check permanently inert. Attackers can pass file:// URLs to nltk.data.load() to read arbitrary files accessible to the process user, including credentials and configuration files.

    Published Updated
  5. CVE-2026-63312

    High · CVSS 8.7EPSS 0.65%No fix published

    NLTK StreamBackedCorpusView Bypasses pathsec.ENFORCE Arbitrary File Read

    NLTK before 3.10.0 contains an arbitrary local file read vulnerability in StreamBackedCorpusView that bypasses pathsec.ENFORCE by calling builtins.open() directly instead of pathsec.open(). Attackers who control the fileid argument can read arbitrary local files regardless of the ENFORCE setting, including sensitive system files and application credentials.

    Published Updated
  6. CVE-2026-63311

    Medium · CVSS 6.9EPSS 0.33%No fix published

    NLTK before 3.10.0 SSRF via DNS Resolution Failure

    NLTK before 3.10.0 (affected versions <= 3.9.4) contains a server-side request forgery (SSRF) vulnerability in the validate_network_url() function in nltk/pathsec.py. The _resolve_hostname() helper catches OSError and ValueError during socket.getaddrinfo() and returns an empty list; when DNS resolution fails, the validation loop executes no IP checks and the function fails open, allowing urlopen() to proceed without validation. An attacker who can trigger DNS resolution failures or use DNS rebinding can bypass SSRF protections and reach restricted network resources, including cloud metadata endpoints (e.g., 169.254.169.254).

    Published Updated
  7. CVE-2026-62388

    High · CVSS 8.7EPSS 0.51%No fix published

    NLTK before 3.10.0 Insecure Default Configuration in pathsec.py

    NLTK versions before 3.10.0 default to ENFORCE=False in pathsec.py, causing all security validation functions to emit warnings instead of raising exceptions. Attackers can bypass path traversal and pickle deserialization protections by exploiting the disabled security controls that are only active when manually enabled.

    Published Updated
  8. CVE-2026-62385

    High · CVSS 8.2EPSS 0.42%No fix published

    NLTK 3.9.4 Path Traversal via FrameNet and NKJP Readers

    NLTK versions before 3.10.0 contain a path traversal vulnerability in FramenetCorpusReader and NKJPCorpusReader that allows attackers to parse XML files outside the corpus root by supplying unsafe selectors or poisoned index state. Attackers can exploit frame_by_name, doc, lu, and header methods with crafted parameters to read arbitrary XML files accessible to the application.

    Published Updated
  9. CVE-2026-62384

    High · CVSS 8.7EPSS 0.65%No fix published

    NLTK FramenetCorpusReader Symlink Sandbox Bypass before 3.10.2

    NLTK versions before 3.10.2 contain a symlink-based sandbox bypass in FramenetCorpusReader that allows attackers to read arbitrary XML files outside the corpus root. Attackers can place symlinks with names containing no path separators inside the corpus subdirectory, which pass the path validation guard and are resolved to files outside the intended corpus root when accessed via frame_by_name(), _lu_file(), or doc() methods.

    Published Updated
  10. CVE-2026-62383

    Medium · CVSS 6.8EPSS 0.18%No fix published

    nltk IPIPANCorpusReader Symlink Arbitrary File Read

    nltk versions before 3.10.2 contain a symlink-based arbitrary file read vulnerability in IPIPANCorpusReader methods that bypass nltk.pathsec validation entirely. Attackers can place a symlink in the corpus root directory and read arbitrary files accessible to the process by calling channels(), domains(), categories(), or fileids() methods with the symlink filename.

    Published Updated
  11. CVE-2026-71514

    Low · CVSS 2EPSS 0.17%No fix published

    NLTK 3.9.4 through 3.10.2 Path Traversal via CrubadanCorpusReader pathsec Bypass

    NLTK 3.9.4 through 3.10.2 contains a path traversal vulnerability in CrubadanCorpusReader. _load_lang_ngrams joins the corpus root with crubadan_code, the column-0 value read from the corpus table.txt mapping file, and opens the result with the builtin open() rather than the pathsec-validated opener, so os.path.join discards the root when that value is absolute and the read escapes the corpus directory without the containment check nltk.pathsec applies when ENFORCE is set. An attacker who controls a corpus package can disclose file contents outside the corpus root through lang_freq, limited to paths ending in -3grams.txt whose contents parse

    Published Updated
  12. CVE-2026-71513

    High · CVSS 8.7EPSS 1.1%No fix published

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

    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.

    Published Updated
  13. CVE-2026-72818

    High · CVSS 8.7EPSS 0.74%No fix published

    NLTK TweetTokenizer URL Pattern Backtracks Catastrophically on Naked-Domain-Like Input

    The URLS regular expression in nltk/tokenize/casual.py, compiled into TweetTokenizer.WORD_RE and applied by TweetTokenizer.tokenize, contains a naked-domain branch whose domain-label prefix [a-z0-9]+(?:[.\-][a-z0-9]+)* is unbounded. Input consisting of many alternating label separators can be partitioned in exponentially many ways, and because the branch also requires a trailing top-level domain that such input never supplies, the engine explores those partitions before failing at each offset. A few kilobytes of input therefore consumes seconds to minutes of single-threaded CPU, and the HANG_RE substitution performed before matching does not

    Published Updated
  14. CVE-2026-12372

    Low · CVSS 3.7EPSS 0.26%No fix published

    Server-Side Request Forgery (SSRF) in nltk/nltk

    A Server-Side Request Forgery (SSRF) vulnerability exists in nltk/nltk versions 3.9.4 and the current develop branch. The `nltk.pathsec.validate_network_url()` function, intended to prevent SSRF by rejecting internal network addresses, fails to reject IPs in the RFC 6598 shared address space (`100.64.0.0/10`). This occurs because Python's `ipaddress` module does not classify such addresses as `is_private` or `is_global`, and the current guard only checks `is_private` and a few explicit categories. An attacker who can influence a URL passed to NLTK's network-loading helpers can exploit this vulnerability to make a strict-mode application send

    Published Updated
  15. CVE-2026-12261

    Medium · CVSS 5.3EPSS 0.21%No fix published

    Improper Access Control in nltk/nltk

    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

    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →