{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata. Fed continuously.","favicon":"https://feed.craftedsignal.io/favicon-32x32.png","feed_url":"https://feed.craftedsignal.io/cpes/cpe2.3anltknltk/feed.json","home_page_url":"https://feed.craftedsignal.io/","icon":"https://feed.craftedsignal.io/apple-touch-icon.png","items":[{"_cs_actors":[],"_cs_cpes":["cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:*"],"_cs_cves":[{"cvss":7.5,"id":"CVE-2026-80205"}],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["nltk (\u003c= 3.9.4)"],"_cs_severities":["low"],"_cs_tags":["denial-of-service","redos","application-vulnerability"],"_cs_type":"advisory","_cs_vendors":[],"content_html":"\u003cp\u003eNLTK (Natural Language Toolkit) versions up to 3.9.4 contain a vulnerability in the \u003ccode\u003enltk.text.Text.findall()\u003c/code\u003e and \u003ccode\u003eTokenSearcher.findall()\u003c/code\u003e methods. These methods accept user-supplied regular expressions and pass them directly to the Python \u003ccode\u003ere\u003c/code\u003e engine without applying any length validation, complexity checks, or timeouts. Because the underlying logic processes these regexps against a generated internal string representation of tokens, an attacker can provide a malicious pattern designed for catastrophic backtracking. This leads to indefinite CPU saturation, effectively causing a denial of service (DoS) for any application hosting the NLTK processing service. The vulnerability, tracked as CVE-2026-80205, remains exploitable in any environment that exposes the \u003ccode\u003efindall\u003c/code\u003e function to untrusted external input.\u003c/p\u003e\n\u003ch2 id=\"attack-chain\"\u003eAttack Chain\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAttacker identifies a web application or API that utilizes the \u003ccode\u003enltk.Text.findall()\u003c/code\u003e method to process user-provided inputs.\u003c/li\u003e\n\u003cli\u003eAttacker crafts a regex payload containing nested quantifiers or overlapping groups (e.g., \u003ccode\u003e\u0026lt;((a+)+)b\u0026gt;\u003c/code\u003e) designed for exponential backtracking.\u003c/li\u003e\n\u003cli\u003eAttacker submits the payload via the input field exposed by the vulnerable application.\u003c/li\u003e\n\u003cli\u003eThe application triggers \u003ccode\u003enltk.Text.findall(regexp)\u003c/code\u003e, which calls \u003ccode\u003eTokenSearcher.findall()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe library performs internal string preprocessing to wrap tokens, which does not sanitize or validate the malicious regex structure.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ere.findall()\u003c/code\u003e function executes the malformed regex against the tokenized data string.\u003c/li\u003e\n\u003cli\u003eThe Python process enters a high-CPU state due to the catastrophic backtracking behavior, causing the application to hang or crash and denying service to other users.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation results in a complete denial of service for the affected Python process. Given that NLTK is frequently used in NLP-heavy backend services, this vulnerability can impact high-traffic web applications, causing system instability and availability loss for all users of the affected instance.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cp\u003eUpdate the \u003ccode\u003enltk\u003c/code\u003e package to a version beyond 3.9.4 immediately to include the patch applied in commit \u003ccode\u003ed8e4753\u003c/code\u003e. Organizations cannot rely on infrastructure-level blocks for this vulnerability, as the attack is inherently application-logic based.\u003c/p\u003e\n","date_modified":"2026-09-08T21:54:00Z","date_published":"2026-09-08T21:54:00Z","id":"https://feed.craftedsignal.io/briefs/2026-09-nltk-redos/","summary":"The NLTK library is vulnerable to Regular Expression Denial of Service (ReDoS) due to unvalidated user-supplied regular expressions being processed without timeouts, allowing CPU exhaustion.","title":"ReDoS Vulnerability in NLTK TokenSearcher and Text findall Methods","url":"https://feed.craftedsignal.io/briefs/2026-09-nltk-redos/"},{"_cs_actors":[],"_cs_cpes":["cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:*"],"_cs_cves":[{"cvss":5.9,"id":"CVE-2026-79676"}],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["NLTK (\u003c= 3.10.2)"],"_cs_severities":["high"],"_cs_tags":[],"_cs_type":"advisory","_cs_vendors":["NLTK Project"],"content_html":"\u003cp\u003eNLTK (Natural Language Toolkit) versions up to and including 3.10.2 are vulnerable to a path traversal and symlink boundary bypass (CVE-2026-79676). The vulnerability exists because several corpus readers - including \u003ccode\u003eIPIPANCorpusReader\u003c/code\u003e, \u003ccode\u003eCrubadanCorpusReader\u003c/code\u003e, and \u003ccode\u003eLinThesaurusCorpusReader\u003c/code\u003e - derive file paths from the corpus state and subsequently reopen them using the standard built-in \u003ccode\u003eopen()\u003c/code\u003e function instead of the secure \u003ccode\u003enltk.pathsec.open()\u003c/code\u003e wrapper.\u003c/p\u003e\n\u003cp\u003eWhen \u003ccode\u003epathsec.ENFORCE=True\u003c/code\u003e is enabled, NLTK is intended to restrict file access to trusted directories. However, because these specific readers do not preserve the trusted-root boundary during file access, a symlink placed inside a trusted corpus root can be used to traverse and access arbitrary files on the underlying filesystem. This allows an attacker to disclose sensitive outside-root content through standard public corpus-reader methods such as \u003ccode\u003esynonyms()\u003c/code\u003e or \u003ccode\u003ecategories()\u003c/code\u003e. This issue affects multiple components across the NLTK codebase, including \u003ccode\u003eMTEFileReader\u003c/code\u003e and various XML-based corpus parsers.\u003c/p\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation allows for unauthorized disclosure of arbitrary files on the filesystem where the NLTK library is processing corpus data. This poses a significant security risk in shared, multi-user, or automated environments where NLTK processes untrusted or attacker-influenced corpus data. The impact is limited to information disclosure and does not include write access or arbitrary code execution; however, it effectively bypasses intended sandbox protections designed to secure NLTK-based applications.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cp\u003ePrioritized actions for development and security teams:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the NLTK library to a patched version once released, or apply manual remediation by wrapping all raw \u003ccode\u003eopen()\u003c/code\u003e calls within affected corpus readers using \u003ccode\u003enltk.pathsec.validate_path(path, required_root=...)\u003c/code\u003e or \u003ccode\u003enltk.pathsec.open()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAudit corpus-processing pipelines to ensure they do not rely on the inclusion of the system temporary directory within the \u003ccode\u003epathsec\u003c/code\u003e allowed-roots configuration.\u003c/li\u003e\n\u003cli\u003eImplement strict filesystem permissions on directories used as NLTK trusted corpus roots to prevent unauthorized creation of symlinks by untrusted users.\u003c/li\u003e\n\u003cli\u003eDeploy internal monitoring to detect unexpected file access patterns originating from the NLTK process, particularly targeting sensitive system files or configuration paths.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-09-08T20:05:43Z","date_published":"2026-09-08T20:05:43Z","id":"https://feed.craftedsignal.io/briefs/2026-09-nltk-path-traversal/","summary":"NLTK corpus readers in versions 3.10.2 and earlier fail to enforce path security boundaries when processing symlinks, allowing attackers to disclose files outside of the trusted corpus root.","title":"NLTK Corpus Reader Path Traversal via Symlink Bypass","url":"https://feed.craftedsignal.io/briefs/2026-09-nltk-path-traversal/"}],"language":"en","title":"CraftedSignal Threat Feed - Cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:*","version":"https://jsonfeed.org/version/1.1"}