CVE-2021-43854
NLTK (Natural Language Toolkit) is a suite of open source Python modules, data sets, and tutorials supporting research and development in Natural Language Processing. Versions prior to 3.6.5 are vulnerable to regular expression denial of service (ReDoS) attacks. The vulnerability is present in PunktSentenceTokenizer, sent_tokenize and word_tokenize. Any users of this class, or these two functions, are vulnerable to the ReDoS attack. In short, a specifically crafted long input to any of these vulnerable functions will cause them to take a significant amount of execution time. If your program relies on any of the vulnerable functions for tokenizing unpredictable user input, then we would strongly recommend upgrading to a version of NLTK without the vulnerability. For users unable to upgrade the execution time can be bounded by limiting the maximum length of an input to any of the vulnerable functions. Our recommendation is to implement such a limit.
EPSS 2.67% · 84.7th percentile
Risk Scores
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| nltk | nltk | < 3.6.5, 0 |
| PyPI | nltk | 0 |
Timeline
- Dec 23, 2021 CVE Published
- Dec 24, 2021 EPSS Score
- Feb 16, 2022 EPSS Score
- Jun 4, 2022 EPSS Score
- Jul 30, 2022 EPSS Score
- Sep 22, 2022 EPSS Score
- Jan 8, 2023 EPSS Score
- Mar 3, 2023 EPSS Score
- Mar 7, 2023 EPSS Score
- Apr 26, 2023 EPSS Score
- Aug 13, 2023 EPSS Score
- Oct 6, 2023 EPSS Score
References
- https://github.com/nltk/nltk/issues/2866 url
- https://github.com/nltk/nltk/security/advisories/GHSA-f8m6-h2c7-8h9x url
- https://github.com/nltk/nltk/pull/2869 url
- https://github.com/nltk/nltk/commit/1405aad979c6b8080dbbc8e0858f89b2e3690341 url
- https://nvd.nist.gov/vuln/detail/CVE-2021-43854 advisory
- https://github.com/nltk/nltk package
- https://github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2021-859.yaml url