Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-72818— NLTK TweetTokenizer URL Pattern Backtracks Catastrophically on Naked-Domain-Like Input

Quick assessment

Affected
nltk nltk
Exploitation
Public or AI PoC available; prioritize validation
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

NLTK 中 文件的 URL 匹配正则表达式(编译为 并由 方法使用)包含一个针对裸域名(naked domain)的分支,其域名标签前缀部分 缺乏长度限制。当输入由大量交替出现的标签分隔符组成时,该正则表达式引擎可以在指数级数量的方式对其进行分割。由于该分支还要求输入末尾必须存在顶级域名(TLD),而此类恶意构造的输入始终不提供 TLD,因此引擎会在每个偏移量处尝试所有可能的分割组合后才宣告匹配失败。因此,仅几千字节的输入即可导致单线程 CPU 占用长达数秒至数分钟。此外,在正则表达式匹配之前执行的 替换操作并不

CVSS 7.5 · High EPSS 0.51% · P41

Possible ATT&CK Techniques 1 AI

T1496 · Resource Hijacking

Affected Version Matrix 2

VendorProduct Version RangeStatus
nltk nltk < 3.10.1 affected
3.10.1 unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-72818

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
NLTK TweetTokenizer URL Pattern Backtracks Catastrophically on Naked-Domain-Like Input
Source: CVE Program / CVE List V5
Vulnerability Description
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 collapse the pattern. TweetTokenizer is intended for tokenizing untrusted social-media text, so any service that applies it, or the module-level casual_tokenize, to submitted text can be stalled per request without authentication. Version 3.10.1 bounds the label repetition.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
CWE-1333
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
nltk nltk 0 ~ 3.10.1 -

II. Public POCs for CVE-2026-72818

# POC Description Source Link Shenlong Link
AI-Generated POC Premium
Qwen3.6-35B-A3B · 7936 chars
Pro+ exclusive includes:
Vulnerability reproduction recording (real sandbox build + trigger, exclusive)
In-depth vulnerability mechanism
Trigger conditions & impact
Full executable POC code
Exploit chain & mitigation
POC zip download
100+ AI POC generations per month

III. Intelligence Information for CVE-2026-72818

登录查看更多情报信息。

Patches & Fixes for CVE-2026-72818 (1)

Vendor Advisories for CVE-2026-72818 (2)

Other References for CVE-2026-72818 (2)

IV. Related Vulnerabilities

V. Comments for CVE-2026-72818

No comments yet


Leave a comment