Threat reportVulnerabilityTL-2026-4002
Red Hat RHSA-2026:86331 glycin-loaders use-after-free (CVE-2026-96889 / RUSTSEC-2026-0305, librsvg)
Red Hat RHSA-2026:86331 glycin-loaders use-after-free (TL-2026-4002), also tracked as RUSTSEC-2026-0305, is a high-severity software vulnerability scored CVSS 7.8, first published 2026-10-21. It has no confirmed attribution, affects Red Hat glycin-loaders (RHEL 10, 10.2 EUS, 10.2 ELS; x86_64, ppc64le), references 1 CVE (CVE-2026-96889), maps to 3 MITRE ATT&CK techniques (T1203, T1204.002, T1566.001), and is covered by 9 detection rules and 10 indicators of compromise.
- CVSS
- 7.8/10High
- CVEs
- 1Referenced vulnerabilities
- Techniques
- 3MITRE ATT&CK
- Actors
- 0Not attributed
- Detection rules
- 9SPL · KQL · Sigma
- IOCs
- 10Indicators of compromise
Key facts for TL-2026-4002
- Threat ID
- TL-2026-4002
- Also known as
- RUSTSEC-2026-0305, RHSA-2026:86331, VectorFreed
- Severity
- HIGH
- CVSS
- 7.8 (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)
- Status
- PATCHED
- Category
- VULNERABILITY
- First published
- Last reviewed
- Attribution confidence
- LOW
- Motivation
- UNKNOWN
- Target sectors
- technology, government administration, enterprise
- Target regions
- Global
- Detection rules
- 9
- Indicators of compromise
- 10
How Red Hat RHSA-2026:86331 glycin-loaders use-after-free works
CVE-2026-96889 is a use-after-free in librsvg triggered by an SVG containing nested XInclude elements that redeclare an entity already in use. Red Hat shipped an Important-rated glycin-loaders update for RHEL 10 (RHSA-2026:86331); a public PoC exists, but no in-the-wild exploitation is confirmed.
CVE-2026-96889 (RUSTSEC-2026-0305) is a use-after-free (CWE-416) in librsvg, the GNOME SVG rendering library written in Rust that relies on libxml2 for XML parsing. While libxml2 is expanding an internal entity, a recursive XInclude can parse a second document that declares an entity with the same name. Both parses share the same XmlState entity map on the librsvg side. entity_insert() replaces the first entry, and the replaced entry's Drop implementation calls xmlFreeNode(), freeing a 144-byte xmlEntity structure. The outer xmlCtxtParseEntity() then keeps using the freed object.
The issue was reported upstream by Rafael B. Dias in GNOME librsvg work item 1241. The reproducer (repro.svg) uses a data URI inside an xi:include that redefines an active XML entity. The upstream fix is commit 8a1b0cd319e9af2d1e9cf878081dd77f227a0504, which stops librsvg from freeing xmlEntity pointers that libxml2 still references. RustSec lists patched releases 2.63.2 and later, 2.62.4, 2.61.5, 2.60.3 and 2.57.5; other trackers cite 2.63.1 as the first upstream fix. NVD and Red Hat rate the issue CVSS 7.8 (AV:L/AC:L/PR:N/UI:R), so the victim must open or render a crafted SVG. Public sources describe the impact as denial of service or potential arbitrary code execution. No source demonstrates a working code-execution exploit.
Red Hat addressed the flaw for glycin-loaders (the image-loader component that embeds librsvg) on RHEL 10 in RHSA-2026:86331, issued 2026-10-20, rated Important. It affects RHEL 10 (x86_64, ppc64le) and the 10.2 EUS and ELS variants. Red Hat also tracks librsvg2 in Bugzilla 2539279, and Wiz lists RHEL 8, 9 and 10, Azure Linux (azl3_librsvg2 2.58.1-8) and Debian 12 as affected. Wiz reports a public PoC repository named VectorFreed that builds malicious SVGs (nested XInclude, base64 data URL, DOCTYPE entity declarations) for delivery by email, download or file share. Wiz reports no confirmed in-the-wild exploitation, the CVE is not in CISA KEV, and its EPSS is 0.00129. This record is based on vendor and tracker data only; the AUSCERT bulletin is member-gated, and no adversary, campaign or network infrastructure is associated with the flaw.
MITRE ATT&CK techniques used in TL-2026-4002
Execution
T1203 Exploitation for Client Execution; T1204.002 Malicious File
Initial Access
Affected products and versions in Red Hat RHSA-2026:86331 glycin-loaders use-after-free
- Red Hat — glycin-loaders (RHEL 10, 10.2 EUS, 10.2 ELS; x86_64, ppc64le)
Vulnerable versions: glycin-loaders builds before 1.0.1-1.el10_2.2
Fixed in: glycin-loaders-1.0.1-1.el10_2.2 - GNOME — librsvg
Vulnerable versions: all versions before the patched releases
Fixed in: 2.63.2 and later; 2.62.4; 2.61.5; 2.60.3; 2.57.5 - Debian — librsvg
Vulnerable versions: bookworm 2.54.7+dfsg-1~deb12u1; trixie 2.60.0+dfsg-1
Fixed in: trixie 2.60.0+dfsg-1+deb13u1; forky 2.63.2+dfsg-1; sid 2.63.3+dfsg-1 - Microsoft — Azure Linux librsvg2
Vulnerable versions: azl3_librsvg2 2.58.1-8
Remediation for Red Hat RHSA-2026:86331 glycin-loaders use-after-free
Patches
- Red Hat RHSA-2026:86331: glycin-loaders-1.0.1-1.el10_2.2
- Upstream librsvg: 2.63.2 and later, 2.62.4, 2.61.5, 2.60.3, 2.57.5 (RustSec); upstream fix first shipped in 2.63.1 per other trackers
- Debian: trixie librsvg 2.60.0+dfsg-1+deb13u1, forky 2.63.2+dfsg-1, sid 2.63.3+dfsg-1
Immediate actions
- Apply RHSA-2026:86331 (glycin-loaders-1.0.1-1.el10_2.2) on RHEL 10 / 10.2 EUS / 10.2 ELS hosts
- Update librsvg2 and any other librsvg-linked packages from vendor errata (Red Hat, Debian, Azure Linux)
- Restart desktop sessions and services that load librsvg or glycin loaders after patching
Workarounds
- Avoid opening or previewing untrusted SVG files with librsvg-based viewers and thumbnailers until patched
- Block or quarantine SVG attachments containing xi:include elements at the mail gateway
Longer-term hardening
- Inventory applications and bundled crates that link librsvg (including statically linked Rust builds)
- Track RUSTSEC-2026-0305 in Rust dependency auditing (cargo-audit) and rebuild affected binaries on librsvg 2.63.2 or later
- Treat SVG files from email, downloads and shares as untrusted input and render them in sandboxed processes
CVEs associated with Red Hat RHSA-2026:86331 glycin-loaders use-after-free
Weaknesses (CWE) in Red Hat RHSA-2026:86331 glycin-loaders use-after-free
Timeline of Red Hat RHSA-2026:86331 glycin-loaders use-after-free
- Debian security tracker lists fixes: trixie 2.60.0+dfsg-1+deb13u1, forky 2.63.2+dfsg-1, sid 2.63.3+dfsg-1; bookworm listed as vulnerable (date is the CVE publication date, fix dates not stated)
- Red Hat opened Bugzilla 2539279 for CVE-2026-96889 and Fedora tracker bugs for librsvg2, mingw-librsvg2 and rust-librsvg
- CVSS v3.1 base score 7.8 (AV:L/AC:L/PR:N/UI:R) and CWE-416 recorded for CVE-2026-96889
- Upstream fix commit 8a1b0cd319e9af2d1e9cf878081dd77f227a0504 stops librsvg freeing xmlEntity pointers still used by libxml2; first shipped in 2.63.1 per trackers, with backports to 2.62.4, 2.61.5, 2.60.3 and 2.57.5
- RUSTSEC-2026-0305 and CVE-2026-96889 published; upstream librsvg issue 1241 (reported by Rafael B. Dias) documents the nested XInclude duplicate-entity use-after-free
- Red Hat issued RHSA-2026:86331 (Important) fixing glycin-loaders on RHEL 10 and 10.2 EUS/ELS with glycin-loaders-1.0.1-1.el10_2.2
- AUSCERT published bulletin ESB-2026.12970 for the glycin-loaders update
Sources cited for Red Hat RHSA-2026:86331 glycin-loaders use-after-free
- Red Hat RHSA-2026:86331 glycin-loaders security update
- AUSCERT ESB-2026.12970 glycin-loaders
- Red Hat CVE-2026-96889
- Red Hat Bugzilla 2539279 (CVE-2026-96889)
- RUSTSEC-2026-0305: Use-after-free when XML includes have duplicated entities
- GNOME librsvg work item 1241
- Debian Security Tracker CVE-2026-96889
- Wiz Vulnerability Database CVE-2026-96889
- VectorFreed PoC repository
- NVD CVE-2026-96889
Detection coverage for TL-2026-4002
As of 2026-10-21, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-4002 across Splunk SPL, Microsoft KQL and Sigma, covering 10 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.