CVE-2026-49477

Soup Sieve: Regular Expression Denial of Service (ReDoS) in soupsieve Selector Parser

Published Jul 14, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
Description
Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve contains a regular expression vulnerable to catastrophic backtracking when processing an attribute selector with an unterminated quoted value in soupsieve/css_parser.py, allowing an attacker who can supply untrusted CSS selector strings to soupsieve.compile() or Beautiful Soup .select() / .select_one() to cause CPU exhaustion and denial of service. This issue is fixed in version 2.8.4.

Analysis

AI-generated

Technical impact

Soup Sieve’s CSS selector parser contains a catastrophic backtracking flaw in a regular expression used for attribute selectors with unterminated quoted values. When an attacker supplies a specially crafted CSS selector to soupsieve.compile() or to BeautifulSoup’s .select() / .select_one() methods, the parser consumes excessive CPU cycles, leading to total service denial. The weakness is an example of a regular expression denial‑of‑service vulnerability and falls under CWE‑1333 and CWE‑400.

Affected Systems

The vulnerability affects the soupsieve library developed by facelessuser for all releases older than 2.8.4. Any application that imports soupsieve directly or indirectly through BeautifulSoup and accepts untrusted CSS selector strings is at risk. Updating to soupsieve 2.8.4 or newer removes the flaw, so only legacy deployments remain vulnerable.

Risk and Exploitability

The CVSS score of 7.5 classifies this as high severity. The EPSS score of less than 1% suggests that real‑world exploitation is currently rare, and the vulnerability is not listed in the CISA KEV catalog. The attack vector is inferred to be remote—an adversary can supply malformed selector strings via network connections or user input that reaches the library. Successful exploitation would exhaust CPU resources on the host, disrupting availability.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade soupsieve to version 2.8.4 or later
  • Validate or sanitize every CSS selector before passing it to soupsieve.compile() or BeautifulSoup.select() methods
  • If upgrading is delayed, run the parsing operation with a strict timeout or resource limit to prevent CPU exhaustion

Generated by OpenCVE AI on July 31, 2026 at 04:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-836r-79rf-4m37 Soup Sieve: Regular Expression Denial of Service (ReDoS) via Selector Parser
History
Type Values Removed Values Added
First Time appeared Facelessuser
Facelessuser soupsieve
Vendors & Products Facelessuser
Facelessuser soupsieve
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Redhat
Redhat hummingbird
CPEs cpe:/a:redhat:hummingbird:1
Vendors & Products Redhat
Redhat hummingbird
References
Metrics threat_severity

None

threat_severity

Important

Type Values Removed Values Added
Description Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve contains a regular expression vulnerable to catastrophic backtracking when processing an attribute selector with an unterminated quoted value in soupsieve/css_parser.py, allowing an attacker who can supply untrusted CSS selector strings to soupsieve.compile() or Beautiful Soup .select() / .select_one() to cause CPU exhaustion and denial of service. This issue is fixed in version 2.8.4.
Title Soup Sieve: Regular Expression Denial of Service (ReDoS) in soupsieve Selector Parser
Weaknesses CWE-1333
CWE-400
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses
  • CWE-1333

    Inefficient Regular Expression Complexity

  • CWE-400

    Uncontrolled Resource Consumption

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 21, 2026, 2:49 PM
Reserved
May 30, 2026, 4:17 AM
Status
Analyzed
Published
Jul 14, 2026, 9:17 PM
Modified
Oct 24, 2026, 9:10 PM
Severity
Important
Public date
Jul 14, 2026, 8:51 PM