Read the docs
TI-2026-74075 Aliases CVE-2026-107381

Mixed-case xlink:HrEf bypasses use nesting limit in svg-sanitizer

Priority MEDIUM 62CWE-178Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
Required
Attack complexity
Low
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-400.

Summary

svg-sanitizer before 1.0.0 by darylldoyle, and the Packagist package enshrined/svg-sanitize before 1.0.0, matches the href attribute case-sensitively when it builds the use element reference graph. A mixed-case xlink:HrEf attribute on nested use elements is therefore skipped (CWE-178), and the sanitizer returns the nesting without applying its nesting limit. An unauthenticated remote attacker can supply an SVG that exhausts resources in an application that renders the sanitized output.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

Description from the CNA

svg-sanitizer is a PHP SVG/XML sanitizer. Prior to 1.0.0, Resolver::processReferences() in src/ElementReference/Resolver.php builds the SVG <use> reference graph with a case-sensitive href attribute predicate before cleanHrefAttributes() normalizes mixed-case names. An attacker can provide xlink:HrEf on nested <use> elements so the graph omits those references, after which the sanitizer converts the attribute to canonical xlink:href and returns the live nesting structure without applying the useNestingLimit protection. A consuming application that renders the sanitized SVG can therefore be exposed to the resource exhaustion that control is designed to prevent. This issue is fixed in version 1.0.0.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00468 40th percentileScored 2026-11-07
Fix Fixed svg-sanitizer (darylldoyle): 1.0.0enshrined/svg-sanitize (Packagist): 1.0.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
darylldoylesvg-sanitizerbefore 1.0.01.0.0Patch availableCNA
—enshrined/svg-sanitize (Packagist)before 1.0.01.0.0Patch availableGHSA-m9xh-6747-9r6f
  • svg-sanitizer Vendordarylldoyle Affected before 1.0.0 Fixed in 1.0.0 Patch available CNA
  • enshrined/svg-sanitize (Packagist) Vendor— Affected before 1.0.0 Fixed in 1.0.0 Patch available GHSA-m9xh-6747-9r6f

Remediation

The Packagist package enshrined/svg-sanitize is fixed in 1.0.0, and the source description states that version 1.0.0 fixes this issue. The sources list no fixed version for svg-sanitizer.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

  • Fix · CNA svg-sanitizer (darylldoyle) Fixed in 1.0.0
  • Fix · GHSA-m9xh-6747-9r6f enshrined/svg-sanitize (Packagist) Fixed in 1.0.0 Advisory →

Timeline

  1. 2026-10-14 Threatist record created from CVE-2026-107381
  2. 2026-10-16 Priority changed: MEDIUM → LOW
  3. 2026-10-18 CISA SSVC decision points changed
  4. 2026-10-18 Priority changed: LOW → MEDIUM

References

  • TI-2026-81116 Quadratic CPU exhaustion in svg-sanitizer PHP tag stripping CVSS 4.0HIGH 8.7
  • TI-2026-84327 svg-sanitizer ReDoS and Fail-Open via image-set CSS Stripping CVSS 4.0HIGH 8.2
  • TI-2026-69645 Denial of service in enshrined/svg-sanitize via crafted SVG DTD CVSS 3.1MEDIUM 6.5
  • TI-2026-84328 Incomplete url() filtering in svg-sanitizer allows remote URL requests CVSS 4.0MEDIUM 5.3
  • TI-2026-81115 darylldoyle svg-sanitizer CSS Injection and Remote Reference Bypass CVSS 4.0MEDIUM 5.1
  • TI-2025-34848 svg-sanitizer By-Passing Attribute Sanitization CVSS 4.0MEDIUM 5.1
See all 11 →

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences