CVE-2026-49476
High · 7.5CVSS
7.5
EPSS
0.6%
Published
Jul 14, 2026
CISA due date
—
Cloudanix analysis
A bug in a library that reads web page styles can let attackers crash systems by feeding it specially formatted instructions, interrupting services until the software is updated.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The CSS selector parser allocates unbounded heap memory when processing large comma-separated selector lists supplied to compile() or select()/select_one(), exhausting resources and causing denial of service.
Why it matters to the business
Attackers can remotely disrupt availability of applications that parse untrusted CSS selectors, leading to service outages and degraded performance with minimal attacker effort; the issue affects Red Hat packages with a specific fix available.
How an attack unfolds
An attacker crafts a small selector string containing thousands of comma-separated selectors and passes it to soupsieve.compile() or Beautiful Soup .select() methods; the parser allocates hundreds of megabytes per list entry until memory pressure triggers denial of service. Public exploit code exists and the flaw has been available for over three months.
How to fix it
Upgrade soupsieve to version 2.8.4 or later. For Red Hat systems running python-rpds-py-main, apply the package update to 2026.6.3-1.hum1 (RHSA-2026:34119) or newer.
How to confirm the fix worked
Confirm the installed soupsieve version is 2.8.4 or higher; test compilation of a large comma-separated selector list and verify memory usage remains bounded.
Typical attack path
- Identify an application endpoint or API that accepts user-controlled CSS selector strings
- Craft a compact payload consisting of a long comma-separated selector list
- Submit the payload via soupsieve.compile() or Beautiful Soup .select()/select_one() calls
- Observe repeated large memory allocations leading to OOM or severe slowdown
How to detect it
Review application logs and process monitors for sudden spikes in memory consumption coinciding with selector parsing calls; inspect request logs for unusually long comma-delimited strings passed to selector methods.
What your security team should do
- Immediately upgrade affected Red Hat packages to the listed fixed version
- Add input-size limits or sanitization around any user-supplied selector strings
- Monitor memory usage and process restarts on services using Beautiful Soup or soupsieve
- Review dependency trees for downstream consumers of the vulnerable library
The record
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 allocates unbounded memory when compiling large comma-separated selector lists, allowing an attacker who can supply a crafted selector string to soupsieve.compile() or Beautiful Soup .select() / .select_one() to allocate hundreds of megabytes of heap memory from a relatively small input and cause denial of service. This issue is fixed in version 2.8.4.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-63341 Aedes is an MQTT broker that can run on any stream server. CWE-400
- CVE-2026-62300 Filecoin Pin is an IPFS Pinning Service API implementation that pins to Filecoin's PDP… CWE-400
- CVE-2026-62254 LibreDWG is a free C library to read and write DWG files. CWE-400
- CVE-2026-62250 LibreDWG is a free C library to read and write DWG files. CWE-400
- CVE-2026-62303 Pistache is a high-performance REST toolkit written in C++. CWE-400
- CVE-2026-62160 Daptin is a GraphQL/JSON-API headless CMS. CWE-400
- CVE-2026-61848 Crass is a Ruby CSS parser that's fully compliant with the CSS Syntax Level 3… CWE-400
- CVE-2026-61854 VoiceSentinel is a real-time voice moderation system for Minecraft servers. CWE-400