<?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:3.9.4:*:*:*:*:*:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3anltknltk3.9.4/</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>Fri, 14 Aug 2026 02:03:36 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3anltknltk3.9.4/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>Arbitrary File Read in NLTK via Path Traversal</title><link>https://feed.craftedsignal.io/briefs/2026-08-nltk-path-traversal/</link><pubDate>Fri, 14 Aug 2026 02:03:36 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-nltk-path-traversal/</guid><description>NLTK versions prior to 3.10.0 are vulnerable to path traversal (CVE-2026-12243) due to improper sequence decoding in nltk.data.load(), allowing attackers to read arbitrary files.</description><content:encoded><![CDATA[<p>NLTK (Natural Language Toolkit) versions prior to 3.10.0 contain a critical path traversal vulnerability (CVE-2026-12243) in the <code>nltk.data.load()</code> and <code>nltk.data.find()</code> functions. The vulnerability exists because the library performs security validation checks on a user-supplied <code>resource_name</code> string before decoding percent-encoded sequences using <code>url2pathname()</code>.</p>
<p>An attacker can bypass these safety checks by supplying encoded traversal sequences (e.g., <code>%2e%2e</code> instead of <code>..</code>). Because the security validation logic operates on the encoded input, the malicious path is permitted. Once the internal validation is cleared, <code>url2pathname()</code> decodes the sequence to <code>..</code>, enabling the function to resolve paths outside of the intended NLTK data directory. This allows an attacker to read any file on the filesystem accessible by the application process, including sensitive credentials, configuration files, and SSH keys.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows unauthorized access to sensitive system files. In environments where an application exposes functionality that accepts user-defined resource paths to the NLTK library (such as an NLTK-based web scraper or NLP analysis service), an unauthenticated or low-privileged attacker can exfiltrate arbitrary files. This may lead to credential theft, full server compromise, or unauthorized access to protected application data.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the <code>nltk</code> library to version 3.10.0 or later immediately to patch CVE-2026-12243.</li>
<li>Audit applications using <code>nltk.data.load()</code> or <code>nltk.data.find()</code> to determine if user-controlled input is passed directly to these functions without external sanitization.</li>
<li>If upgrading is not immediately possible, implement a wrapper around <code>nltk.data.load()</code> that manually performs URL decoding (<code>urllib.parse.unquote</code>) on the input path before any other processing or validation occurs.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category></item></channel></rss>