Skip to main content

Soupsieve

2 CVEs product

Monthly

CVE-2026-85999 Sep 17, 15:23 MEDIUM POC PATCH GHSA This Month

Algorithmic-complexity denial of service in Soup Sieve versions prior to 2.9 allows remote attackers to exhaust CPU and stall Python services by supplying a valid CSS selector containing a long internal whitespace run, or a long CSS comment run followed by another token, to soupsieve.compile() or BeautifulSoup.select(). The pre-tokenization trimming step performs quadratic work against the attacker-controlled string, and because the parsing happens in-process it can hold the GIL and starve worker threads, though there is no memory corruption or code execution and no confidentiality or integrity impact (CVSS 5.3, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L). Applications that only pass hard-coded, static selectors are entirely unaffected, and no public exploit code was identified at time of analysis. Vendor-released patch: 2.9.

Denial Of Service Python Soupsieve
NVD GitHub
CVSS 3.1
5.3
EPSS
0.4%
CVE-2026-86000 Sep 17, 15:21 MEDIUM POC PATCH GHSA This Month

Denial of service in Soup Sieve, the CSS selector library used by Beautiful Soup 4, affects all versions prior to 2.9 and is triggered when an application passes attacker-controlled CSS selectors into soupsieve.compile(), soupsieve.select(), or BeautifulSoup.select(). The parser's IDENTIFIER regular expression contains adjacent quantified groups over overlapping character classes, so a long identifier or unquoted attribute-value run followed by input that makes the overall match fail - upstream's own regression test uses a selector such as "[a=" plus 12,000 'a' characters - forces the regex engine to explore quadratically many splits, burning CPU while holding the Python GIL and stalling workers. The vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L (unauthenticated remote, low availability impact only), applications that use only hard-coded developer selectors are completely unaffected, the vendor has released the fix in 2.9, and no public exploit or active exploitation has been identified at time of analysis.

Denial Of Service Python Soupsieve
NVD GitHub
CVSS 3.1
5.3
EPSS
0.4%
EPSS 0% CVSS 5.3
MEDIUM POC PATCH This Month

Algorithmic-complexity denial of service in Soup Sieve versions prior to 2.9 allows remote attackers to exhaust CPU and stall Python services by supplying a valid CSS selector containing a long internal whitespace run, or a long CSS comment run followed by another token, to soupsieve.compile() or BeautifulSoup.select(). The pre-tokenization trimming step performs quadratic work against the attacker-controlled string, and because the parsing happens in-process it can hold the GIL and starve worker threads, though there is no memory corruption or code execution and no confidentiality or integrity impact (CVSS 5.3, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L). Applications that only pass hard-coded, static selectors are entirely unaffected, and no public exploit code was identified at time of analysis. Vendor-released patch: 2.9.

Denial Of Service Python Soupsieve
NVD GitHub
EPSS 0% CVSS 5.3
MEDIUM POC PATCH This Month

Denial of service in Soup Sieve, the CSS selector library used by Beautiful Soup 4, affects all versions prior to 2.9 and is triggered when an application passes attacker-controlled CSS selectors into soupsieve.compile(), soupsieve.select(), or BeautifulSoup.select(). The parser's IDENTIFIER regular expression contains adjacent quantified groups over overlapping character classes, so a long identifier or unquoted attribute-value run followed by input that makes the overall match fail - upstream's own regression test uses a selector such as "[a=" plus 12,000 'a' characters - forces the regex engine to explore quadratically many splits, burning CPU while holding the Python GIL and stalling workers. The vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L (unauthenticated remote, low availability impact only), applications that use only hard-coded developer selectors are completely unaffected, the vendor has released the fix in 2.9, and no public exploit or active exploitation has been identified at time of analysis.

Denial Of Service Python Soupsieve
NVD GitHub

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy