{"items":[{"id":"NVI-00017725","kind":"vulnerability","title":"Soup Sieve has Memory Exhaustion via Large Comma-Separated Selector Lists","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-2wc2-fm75-p42x","CVE-2026-49476"],"plain_summary":"GitHub lists this reviewed advisory for soupsieve. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-4f4698ec458bddf9767c4637d945f393"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-07-09T13:37:40.000Z","value":"7.5 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-4f4698ec458bddf9767c4637d945f393"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-4f4698ec458bddf9767c4637d945f393","url":"https://github.com/advisories/GHSA-2wc2-fm75-p42x","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-2wc2-fm75-p42x","publisher":"GitHub Advisory Database","observed_at":"2026-11-04T23:34:40.400Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-4f4698ec458bddf9767c4637d945f393"],"technology":"soupsieve","known_exclusions":[],"conditions_summary":"### Summary\n\nThe CSS selector parser in soupsieve (the CSS selector engine for Beautiful Soup 4) allocates unbounded memory when compiling large comma-separated selector lists. An attacker who can supply a crafted CSS selector string to `soupsieve.compile()` or Beautiful Soup's `.select()` / `.select_one()` can cause the application to allocate hundreds of megabytes of heap memory from a relatively small input, leading to memory exhaustion and denial of service.\n\nTo be completely transparent, AI tools helped surface this issue. However, it was independently reproduced and carefully validated. Researchers follow responsible disclosure practices and originally shared this report privately.\n\nA **500 KB** selector string triggers allocation of approximately **244 MB** of heap memory - a 488x— amplification ratio**.\n\n### Details\n\n**Affected code:** `soupsieve/css_parser.py`, lines ~204, 925, 1106\n\nThe soupsieve CSS parser splits comma-separated selector lists and creates one `CSSSelector` object per list item. Each `CSSSelector` object contains parsed selector data structures including `SelectorList`, `Selector`, and associated tag/attribute/pseudo-class metadata.\n\nWhen a selector strin","public_affected_ranges":["<= 2.8.3"]}],"null_published_at":"2026-11-05T19:10:21.457Z","source_updated_at":"2026-07-09T13:37:40.000Z","source_disclosed_at":"2026-07-09T13:37:40.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-04T23:34:40.400Z"}],"next_cursor":null,"snapshot_revision":"42594"}