Skip to content
OpenAdvisories
High · 7.5 CVE-2021-43854 EUVD-2021-0148GHSA-f8m6-h2c7-8h9xPYSEC-2021-859

Inefficient Regular Expression Complexity in nltk

Published Dec 23, 2021 · Updated Aug 4, 2024 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
nltk nltk < 3.6.5 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 nltk 3.6.7-1 —
Debian 13 nltk 3.6.7-1 —
Debian 12 nltk 3.6.7-1 —
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS nltk 3.4.5-2ubuntu0.1~esm2 USN-7365-1
Ubuntu Pro 18.04 LTS nltk 3.2.5-1ubuntu0.1+esm2 USN-7365-1
Ubuntu Pro 16.04 LTS nltk 3.1-1ubuntu0.1+esm2 USN-7365-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 14.04 LTS nltk 2.0~b9-0ubuntu4.1~esm4 USN-7365-1

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI nltk < 3.6.6 3.6.6 GHSA-f8m6-h2c7-8h9x
PyPI nltk < 3.6.5 3.6.5 PYSEC-2021-859

Advisories 1

References