CVE-2026-126193: Soup Sieve recursion error in CSS pseudo-class parsing

CVE-2026-126193 · Severity: medium · CVSS 5.3 · Published 2026-11-12

Soup Sieve is a CSS selector library used by Beautiful Soup to parse web content. When processing deeply nested CSS pseudo-class selectors from untrusted sources, the library can hit Python's recursion limit and crash, causing the application to fail to process that request. While this is recoverable and does not crash the entire service, it allows attackers to trigger localized denials of service.

Technologies: Facelessuser Soup Sieve. Vendors: Facelessuser.

Quick answers

Is CVE-2026-126193 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-126193 being exploited in the wild.
How severe is CVE-2026-126193?
Medium severity, with a CVSS score of 5.3, published 12 November 2026.
Which products and versions are affected?
Facelessuser Soup Sieve 0.4 to 2.x.
Is there a fix for CVE-2026-126193?
Yes: fixed in 3.0. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-126193 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-126193?
Check whether you run Facelessuser Soup Sieve at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • Fixed in: 3.0

Technical details

A stack exhaustion vulnerability exists in Soup Sieve versions 0.4 through 2.x due to recursive parsing of deeply nested CSS pseudo-class selectors. An attacker providing a malicious selector string triggers RecursionError when the parser exceeds Python's recursion depth limit. The vulnerability requires the application to accept and parse untrusted selectors; the impact is denial of service per request rather than a persistent outage.

Affected products

  • facelessuser Soup Sieve 0.4 to 2.x

Timeline

  • 2026-11-12: disclosed
  • 2026-09-26: patched: Fix merged via PR #306 (recursion elimination)

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.