CVE-2026-28348: lxml-html-clean has CSS @import Filter Bypass via Unicode Escapes

CVE-2026-28348 · Severity: low · CVSS 3.1 · Published 2026-03-05

lxml_html_clean is a project for HTML cleaning functionalities copied from `lxml.html.clean`. Prior to version 0.4.4, the _has_sneaky_javascript() method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the @import and expression() filters, allowing external CSS loading or XSS in older browsers. This issue has been patched in version 0.4.4.

Technologies: lxml_html_clean (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-28348 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-28348 being exploited in the wild.
How severe is CVE-2026-28348?
Low severity, with a CVSS score of 3.1, published 5 March 2026.
Which products and versions are affected?
lxml_html_clean (PyPI) ECOSYSTEM:introduced=0,fixed=0.4.4.
Is there a fix for CVE-2026-28348?
Yes. lxml_html_clean (PyPI): upgrade to 0.4.4 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
Am I affected by CVE-2026-28348?
Check whether you run lxml_html_clean (PyPI) 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

  • lxml_html_clean (PyPI): upgrade to 0.4.4 or later
    pip install "lxml_html_clean>=0.4.4"

Affected products

  • lxml_html_clean (PyPI) ECOSYSTEM:introduced=0,fixed=0.4.4

Identifiers

  • CVE-2026-28348
  • GHSA-hw26-mmpg-fqfg
  • PYSEC-2026-2201

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