CVE-2026-49825: lxml_html_clean XSS via xlink:href namespaced URL attributes

CVE-2026-49825 · Severity: high · CVSS 8.2 · Published 2026-08-20

The lxml_html_clean library, used for sanitizing HTML to prevent security risks, fails to properly scrub malicious JavaScript from certain link types. If an application is configured to allow custom attributes, an attacker could provide a specially crafted link that executes code in a user's browser when clicked. This could lead to unauthorized actions or data theft from users interacting with the affected website.

Technologies: lxml_html_clean (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-49825 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-49825 being exploited in the wild.
How severe is CVE-2026-49825?
High severity, with a CVSS score of 8.2, published 20 August 2026.
Which products and versions are affected?
lxml_html_clean (PyPI) < 0.4.5, ECOSYSTEM:introduced=0,fixed=0.4.5.
Is there a fix for CVE-2026-49825?
Yes. lxml_html_clean (PyPI): upgrade to 0.4.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-49825 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-49825?
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.5 or later
    pip install "lxml_html_clean>=0.4.5"

Technical details

A Cross-Site Scripting (XSS) vulnerability exists in lxml_html_clean due to an incomplete list of disallowed inputs in the link attribute allow-list. The 'Cleaner' class uses 'iterlinks()' to identify and scrub URL schemes, but 'iterlinks()' only checks attributes defined in 'lxml.html.defs.link_attrs', which lacks namespaced attributes like 'xlink:href'. When 'safe_attrs_only' is set to False, malicious 'javascript:' payloads in 'xlink:href' attributes (common in SVG and MathML) are bypassed. This allows for stored XSS if a victim clicks the affected link. The issue is patched in lxml_html_clean version 0.4.5.

Affected products

  • fedora-python lxml_html_clean < 0.4.5
  • lxml lxml <= 6.1.0

Identifiers

  • CVE-2026-49825
  • GHSA-4jhm-jv67-739f
  • PYSEC-2026-2614

Timeline

  • 2026-05-10: disclosed: Reported by Guillem Lefait
  • 2026-06-01: advisory: Initial GitHub Advisory published
  • 2026-07-08: patched: Advisory updated with patch information

References

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