Skip to content
OpenAdvisories
Medium · 6.3 CVE-2026-126192 EUVD-2026-124557GHSA-4j63-6c4x-wfg4

Soup Sieve: General sibling combinator inside :has() matches untrusted HTML in quadratic time

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 2.10, matching a developer-authored selector that places the general sibling combinator inside :has() repeatedly scans each candidate element's following siblings when the right-hand side is absent, producing quadratic work on attacker-controlled HTML. Applications that evaluate a fixed selector such as div:has(a ~ b) over untrusted markup can have a worker occupied for minutes by a small document, while the adjacent sibling form and trusted-only document processing are not affected in the same way. This issue is fixed in version 2.10.

Affected products

VendorProductAffectedFixed
facelessuser soupsieve < 2.10 —

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 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling datadog-agent-7.81-core-integrations 7.81.3-r20 —
Wolfi rolling open-webui +3 No fix yet —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI soupsieve < 2.10.0 2.10.0 GHSA-4j63-6c4x-wfg4

References