Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

NLTK TweetTokenizer URL Pattern Backtracks Catastrophically on Naked-Domain-Like Input

CVSS 4.0 8.7 HIGHCVSS 3.1 7.5 HIGHCheck source for fixed versionsKEV status unknown

cve-program · CVE-2026-72818

Published

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.

Read the publisher's advisory

Affected versions, risk and source history

cve-program · CVE-2026-72818

Published

nltk

https://pypi.org

Publisher's version information

Shown as published. These rules are not interpreted as NuGet package version ranges.

{
                    "vendor": "nltk",
                    "product": "nltk",
                    "defaultStatus": "unaffected",
                    "packageURL": "pkg:pypi/nltk",
                    "collectionURL": "https://pypi.org",
                    "packageName": "nltk",
                    "repo": "https://github.com/nltk/nltk",
                    "versions": [
                        {
                            "version": "0",
                            "lessThan": "3.10.1",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "3.10.1",
                            "status": "unaffected",
                            "versionType": "semver"
                        }
                    ],
                    "programFiles": [
                        "nltk/tokenize/casual.py"
                    ]
                }

Original source record · Cite this exact observation · Complete original publisher JSON

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 12 Nov 14:22 UTC · 274 of 275 readable · 272 fully read · documentation 469/469 current