Search vulnerabilities

Results 59

Export CSV
CVE-2026-81725

NLTK before 3.10.3 Regular Expression Denial of Service via Pl196xCorpusReader

NLTK before 3.10.3 contains a regular expression denial of service vulnerability in Pl196xCorpusReader that allows attackers to cause quadratic CPU consumption by supplying malformed TEI blocks with many unmatched opening tags. Attackers can exploit lazy regex patterns in the read_block method through public APIs like words() and tagged_words() to force repeated rescans and achieve near-quadratic runtime growth.

CVSS 4.0 · 6.3 Medium EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-81723

NLTK before 3.10.3 Quadratic CPU Exhaustion via XMLCorpusView

NLTK versions before 3.10.3 contain a quadratic CPU exhaustion vulnerability in XMLCorpusView._read_xml_fragment() that rescans accumulated XML fragments on every 1 KiB block read. Attackers can provide malformed XML corpus files to cause severe CPU consumption and denial of service through affected readers like BNCCorpusReader.

CVSS 4.0 · 6.3 Medium EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-81727

NLTK before 3.10.3 Hardlink File Overwrite via downloader

NLTK versions before 3.10.3 contain a filesystem containment bypass vulnerability in the Downloader.download and Downloader.incr_download methods that allows attackers to overwrite files outside the install root through pre-existing hardlinks. Attackers with write access to a shared downloader directory can create hardlinks pointing to outside-root files that are then overwritten during normal package extraction, mutating files outside the intended install tree.

CVSS 4.0 · 6.9 Medium EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-81724

NLTK before 3.10.3 Denial of Service via Uncontrolled Recursion

NLTK before 3.10.3 contains an uncontrolled recursion vulnerability in nltk.featstruct.FeatStructReader that allows unauthenticated attackers to cause a denial of service by supplying deeply nested feature-structure input. Attackers can craft trivial payloads with nested brackets that exceed Python's recursion limit and raise an unhandled RecursionError, crashing applications that parse user-supplied feature structures or feature grammars.

CVSS 4.0 · 6.9 Medium EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-78682

NLTK before 3.10.3 SSRF Protection Bypass via Proxy

NLTK before 3.10.3 contains a server-side request forgery vulnerability in nltk.pathsec.urlopen (and callers nltk.data.load, nltk.downloader.Downloader.index/download) when an HTTP proxy is configured. pathsec.urlopen validates the requested hostname locally, but proxy-handler inheritance disables the safe HTTP/HTTPS handlers so the actual fetch is performed by the proxy against a destination that is never re-validated. An attacker can supply a validated public URL that the proxy forwards to an internal loopback-only service, allowing disclosure of internal HTTP resources, loading of forged downloader indexes, and installation of attacker-chosen package content.

CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-63312

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.

CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-81722

nltk PorterStemmer before 3.10.3 Quadratic-time DoS

nltk PorterStemmer in versions <= 3.10.2 (fixed in 3.10.3) contains an inefficient-algorithmic-complexity denial of service in PorterStemmer.stem(). The _is_consonant() helper walks backward over the entire run of trailing 'y' characters on every call, and _measure() invokes it for each stem position, causing O(n^2) behavior. A single ~20-50 KB untrusted token consisting of a long run of the letter 'y' followed by a matching suffix (e.g., 'ness') can pin a CPU core for seconds to minutes, causing availability impact.

CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-62388

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.

CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-62385

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.

CVSS 4.0 · 8.2 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-70626

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.

CVSS 4.0 · 8.6 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-71514

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 as token count lines.

CVSS 4.0 · 2 Low EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-62383

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.

CVSS 4.0 · 6.8 Medium EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-63311

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).

CVSS 4.0 · 6.9 Medium EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-71513

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.

CVSS 4.0 · 8.7 High EPSS 1.1% KEV · Not listed
Vendors
Products
CVE-2026-66393

NLTK before 3.9.4 Denial of Service via JSONTaggedDecoder

NLTK versions before 3.9.4 contain an unbounded recursion vulnerability in JSONTaggedDecoder.decode_obj() that allows attackers to cause denial of service by supplying deeply nested JSON structures. Attackers can craft JSON payloads exceeding the recursion limit to trigger an unhandled RecursionError that crashes the Python process.

CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-78681

NLTK before 3.10.3 Entity Expansion DoS via ElementTree

NLTK versions before 3.10.3 use xml.etree.ElementTree to parse XML in multiple modules, which honors entity declarations in document DTDs. Attackers can craft XML payloads with nested entity declarations that expand from hundreds of bytes to megabytes in memory, causing denial of service.

CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-80206

NLTK 3.10.2 Regular Expression Denial of Service via tgrep

NLTK before 3.10.3 contains a regular expression denial of service (ReDoS) vulnerability in the tgrep module. The _tgrep_node_action function compiles user-supplied regular expressions embedded in /regex/ pattern nodes and executes them via re.search against tree node labels without any validation or timeout. An attacker who controls the tgrep pattern (e.g., via tgrep_positions() or tgrep_compile() exposed to external input) can supply a pattern that triggers catastrophic backtracking, causing indefinite CPU saturation that blocks the Python process.

CVSS 4.0 · 8.2 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-79674

NLTK 3.10.2 Path Traversal via corpus-reader constructors

NLTK versions before 3.10.3 contain a path sandbox bypass vulnerability in corpus-reader constructors that allows attackers to read files outside the intended data root. Attackers can supply arbitrary corpus root paths to LinThesaurusCorpusReader and PanLexLiteCorpusReader constructors to access filesystem content and SQLite databases outside the pathsec sandbox boundary.

CVSS 4.0 · 8.8 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-79676

NLTK before 3.10.3 Path Traversal via Symlink Bypass

NLTK versions before 3.10.3 contain a path traversal vulnerability in corpus readers that reopen root-derived paths using built-in open() instead of nltk.pathsec.open(), allowing symlinks to escape trusted roots. Attackers who stage symlinked corpus files under a trusted data root can disclose outside-root content through normal corpus reader methods like channels(), domains(), and synonyms().

CVSS 4.0 · 8.2 High EPSS < 1% KEV · Not listed
Vendors
Products
CVE-2026-79657

NLTK before 3.10.3 Remote Code Execution via Unsafe Pickle Deserialization

NLTK versions before 3.10.3 contain a remote code execution vulnerability in allowlisted pickle loaders that trust entire module namespaces instead of specific safe callables. Attackers can craft malicious pickle payloads invoking dangerous in-namespace functions like ReppTokenizer._execute and numpy.f2py.crackfortran.myeval through pickle REDUCE to execute arbitrary commands during model or tokenizer artifact loading.

CVSS 4.0 · 9.3 Critical EPSS 1.5% KEV · Not listed
Vendors
Products