Skip to content
OpenAdvisories
High · 7.5 CVE-2026-126191 EUVD-2026-124551GHSA-6655-6qjp-jx7x

Soup Sieve: Exponential ReDoS in selector compilation via \9-run in CSS_ESCAPES/IDENTIFIER

Published Nov 12, 2026 · Updated Nov 13, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
facelessuser soupsieve < 3.0 —

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
Ubuntu 26.10 soupsieve No fix yet —
Ubuntu 26.04 LTS soupsieve No fix yet —
Ubuntu 24.04 LTS soupsieve No fix yet —
Ubuntu 22.04 LTS soupsieve No fix yet —
Ubuntu 20.04 LTS soupsieve No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI soupsieve < 3.0.2 3.0.2 GHSA-6655-6qjp-jx7x

References