{"id":"UBUNTU-CVE-2026-72818","details":"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.","modified":"2026-09-02T16:26:09Z","published":"2026-08-20T22:18:00Z","upstream":["CVE-2026-72818"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-72818"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-72818"},{"type":"REPORT","url":"https://github.com/nltk/nltk"},{"type":"REPORT","url":"https://pypi.org"},{"type":"REPORT","url":"https://github.com/cveproject/cvelistv5/tree/main/cves/2026/72xxx/cve-2026-72818.json"},{"type":"REPORT","url":"https://github.com/nltk/nltk/blob/3.9.4/nltk/tokenize/casual.py"},{"type":"REPORT","url":"https://github.com/nltk/nltk/issues/3704"},{"type":"REPORT","url":"https://github.com/nltk/nltk/releases/tag/v3.10.1"},{"type":"REPORT","url":"https://nvd.nist.gov/vuln/detail/cve-2026-72818"},{"type":"REPORT","url":"https://www.vulncheck.com/advisories/nltk-tweettokenizer-url-pattern-backtracks-catastrophically-on-naked-domain-like-input"},{"type":"REPORT","url":"https://github.com/nltk/nltk/commit/7808692d451b962711005d954859bb83aabcf8fa"},{"type":"REPORT","url":"https://security-tracker.debian.org/tracker/cve-2026-72818"}],"affected":[{"package":{"name":"nltk","ecosystem":"Ubuntu:Pro:14.04:LTS","purl":"pkg:deb/ubuntu/nltk?arch=source&distro=esm-infra-legacy%2Ftrusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.0~b9-0ubuntu4","2.0~b9-0ubuntu4.1~esm2","2.0~b9-0ubuntu4.1~esm4","2.0~b9-0ubuntu4.1~esm5","2.0~b9-0ubuntu4.1~esm6"],"ecosystem_specific":{"binaries":[{"binary_name":"python-nltk","binary_version":"2.0~b9-0ubuntu4.1~esm6"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-72818.json"}},{"package":{"name":"nltk","ecosystem":"Ubuntu:Pro:16.04:LTS","purl":"pkg:deb/ubuntu/nltk?arch=source&distro=esm-apps-legacy%2Fxenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.0.4-1","3.0.5-1","3.1-1","3.1-1ubuntu0.1","3.1-1ubuntu0.1+esm1","3.1-1ubuntu0.1+esm2","3.1-1ubuntu0.1+esm3","3.1-1ubuntu0.1+esm4"],"ecosystem_specific":{"binaries":[{"binary_name":"python-nltk","binary_version":"3.1-1ubuntu0.1+esm4"},{"binary_name":"python3-nltk","binary_version":"3.1-1ubuntu0.1+esm4"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-72818.json"}},{"package":{"name":"nltk","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/nltk?arch=source&distro=esm-apps%2Fbionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.2.4-1","3.2.5-1","3.2.5-1ubuntu0.1","3.2.5-1ubuntu0.1+esm1","3.2.5-1ubuntu0.1+esm2","3.2.5-1ubuntu0.1+esm3","3.2.5-1ubuntu0.1+esm4"],"ecosystem_specific":{"binaries":[{"binary_version":"3.2.5-1ubuntu0.1+esm4","binary_name":"python-nltk"},{"binary_name":"python3-nltk","binary_version":"3.2.5-1ubuntu0.1+esm4"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-72818.json"}},{"package":{"name":"nltk","ecosystem":"Ubuntu:Pro:20.04:LTS","purl":"pkg:deb/ubuntu/nltk?arch=source&distro=esm-apps%2Ffocal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.4.5-1","3.4.5-2","3.4.5-2ubuntu0.1~esm1","3.4.5-2ubuntu0.1~esm2","3.4.5-2ubuntu0.1~esm3","3.4.5-2ubuntu0.1~esm4"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-nltk","binary_version":"3.4.5-2ubuntu0.1~esm4"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-72818.json"}},{"package":{"name":"nltk","ecosystem":"Ubuntu:Pro:22.04:LTS","purl":"pkg:deb/ubuntu/nltk?arch=source&distro=esm-apps%2Fjammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.5-1","3.6.5-1","3.6.7-1","3.7-1","3.7-1ubuntu0.1~esm1","3.7-1ubuntu0.1~esm2"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-nltk","binary_version":"3.7-1ubuntu0.1~esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-72818.json"}},{"package":{"name":"nltk","ecosystem":"Ubuntu:Pro:24.04:LTS","purl":"pkg:deb/ubuntu/nltk?arch=source&distro=esm-apps%2Fnoble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.8.1-1","3.8.1-1ubuntu0.1~esm1","3.8.1-1ubuntu0.1~esm2"],"ecosystem_specific":{"binaries":[{"binary_version":"3.8.1-1ubuntu0.1~esm2","binary_name":"python3-nltk"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-72818.json"}},{"package":{"name":"nltk","ecosystem":"Ubuntu:Pro:26.04:LTS","purl":"pkg:deb/ubuntu/nltk?arch=source&distro=esm-apps%2Fresolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.9.1-2","3.9.1-2build1","3.9.2-1","3.9.2-1ubuntu0.1~esm1","3.9.2-1ubuntu0.1~esm2"],"ecosystem_specific":{"binaries":[{"binary_name":"python3-nltk","binary_version":"3.9.2-1ubuntu0.1~esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-72818.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"},{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N"},{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"},{"type":"Ubuntu","score":"medium"}]}