<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Cpe:2.3:a:nltk:nltk:*:*:*:*:*:*:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3anltknltk/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 08 Sep 2026 21:54:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3anltknltk/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>ReDoS Vulnerability in NLTK TokenSearcher and Text findall Methods</title><link>https://feed.craftedsignal.io/briefs/2026-09-nltk-redos/</link><pubDate>Tue, 08 Sep 2026 21:54:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-nltk-redos/</guid><description>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.</description><content:encoded><![CDATA[<p>NLTK (Natural Language Toolkit) versions up to 3.9.4 contain a vulnerability in the <code>nltk.text.Text.findall()</code> and <code>TokenSearcher.findall()</code> methods. These methods accept user-supplied regular expressions and pass them directly to the Python <code>re</code> 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 <code>findall</code> function to untrusted external input.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a web application or API that utilizes the <code>nltk.Text.findall()</code> method to process user-provided inputs.</li>
<li>Attacker crafts a regex payload containing nested quantifiers or overlapping groups (e.g., <code>&lt;((a+)+)b&gt;</code>) designed for exponential backtracking.</li>
<li>Attacker submits the payload via the input field exposed by the vulnerable application.</li>
<li>The application triggers <code>nltk.Text.findall(regexp)</code>, which calls <code>TokenSearcher.findall()</code>.</li>
<li>The library performs internal string preprocessing to wrap tokens, which does not sanitize or validate the malicious regex structure.</li>
<li>The <code>re.findall()</code> function executes the malformed regex against the tokenized data string.</li>
<li>The 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.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful 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.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Update the <code>nltk</code> package to a version beyond 3.9.4 immediately to include the patch applied in commit <code>d8e4753</code>. Organizations cannot rely on infrastructure-level blocks for this vulnerability, as the attack is inherently application-logic based.</p>
]]></content:encoded><category domain="severity">low</category><category domain="type">advisory</category><category>denial-of-service</category><category>redos</category><category>application-vulnerability</category></item><item><title>NLTK Corpus Reader Path Traversal via Symlink Bypass</title><link>https://feed.craftedsignal.io/briefs/2026-09-nltk-path-traversal/</link><pubDate>Tue, 08 Sep 2026 20:05:43 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-nltk-path-traversal/</guid><description>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.</description><content:encoded><![CDATA[<p>NLTK (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 <code>IPIPANCorpusReader</code>, <code>CrubadanCorpusReader</code>, and <code>LinThesaurusCorpusReader</code> - derive file paths from the corpus state and subsequently reopen them using the standard built-in <code>open()</code> function instead of the secure <code>nltk.pathsec.open()</code> wrapper.</p>
<p>When <code>pathsec.ENFORCE=True</code> 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 <code>synonyms()</code> or <code>categories()</code>. This issue affects multiple components across the NLTK codebase, including <code>MTEFileReader</code> and various XML-based corpus parsers.</p>
<h2 id="impact">Impact</h2>
<p>Successful 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.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritized actions for development and security teams:</p>
<ul>
<li>Update the NLTK library to a patched version once released, or apply manual remediation by wrapping all raw <code>open()</code> calls within affected corpus readers using <code>nltk.pathsec.validate_path(path, required_root=...)</code> or <code>nltk.pathsec.open()</code>.</li>
<li>Audit corpus-processing pipelines to ensure they do not rely on the inclusion of the system temporary directory within the <code>pathsec</code> allowed-roots configuration.</li>
<li>Implement strict filesystem permissions on directories used as NLTK trusted corpus roots to prevent unauthorized creation of symlinks by untrusted users.</li>
<li>Deploy internal monitoring to detect unexpected file access patterns originating from the NLTK process, particularly targeting sensitive system files or configuration paths.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category></item></channel></rss>