CVE-2026-126191 Soup Sieve: Exponential ReDoS in selector compilation via \9-run in CSS_ESCAPES/IDENTIFIER
Attackers supplying untrusted selector strings can trigger exponential regex backtracking in Soup Sieve, stalling workers of applications that compile untrusted selectors.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Harmful if only installed
- No
- Needs a specific call
- Yes
- Fix
- None listed
What is CVE-2026-126191?
CVE-2026-126191 is a high-severity denial of service vulnerability in facelessuser soupsieve, published on 12 Nov 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 3.0, the CSS_ESCAPES and IDENTIFIER regular-expression subpatterns can backtrack exponentially on runs of ambiguous digit escapes in an attribute-name or tag position of an otherwise valid selector. The failure occurs during selector compilation through soupsieve.compile() or Beautiful Soup select() before SELECTOR_LIMIT is applied, so an application that accepts untrusted selector strings can have a worker stalled by a short input. This issue is fixed in version 3.0.
Weakness: CWE-1333
Which versions are affected by CVE-2026-126191?
An affected version is only exploitable if your software calls soupsieve.compile() or select(). Many projects that include it are not exposed.
How do I fix CVE-2026-126191?
No fix has been published for CVE-2026-126191 yet. Limit exposure of the affected software until one is available.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2026-126191 being exploited?
There is no known exploitation of CVE-2026-126191 in the wild and no public exploit code.
Sources
Also known as GHSA-6655-6qjp-jx7x.