Live › vulnerability › CVE-2026-96889
Go to dashboardlibrsvg, the SVG rendering library, can use freed memory when an SVG file contains a nested XInclude that declares an entity with a duplicate name. An attacker who supplies a crafted SVG to an app that renders it could crash the process or potentially run code.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 19:11 UTC, 5h before NVD. All times on this page are UTC.
| Product | Ecosystem | Affected | Fixed in |
|---|---|---|---|
| librsvg | cargo | < 2.57.5 | 2.57.5 |
| librsvg | cargo | >= 2.60.0-beta.0, < 2.60.3 | 2.60.3 |
| librsvg | cargo | >= 2.61.0, < 2.61.5 | 2.61.5 |
| librsvg | cargo | >= 2.62.0-beta.0, < 2.62.4 | 2.62.4 |
| librsvg | cargo | >= 2.63.0-beta.0, < 2.63.2 | 2.63.2 |
Run cargo tree -i librsvg or check Cargo.lock for librsvg and compare its version to the affected ranges.
Upgrade librsvg to 2.57.5, 2.60.3, 2.61.5, 2.62.4, 2.63.2 or later, matching your release line.
Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
Librsvg uses libxml2, a C library, to parse XML. When librsvg parses an SVG document which has a nested Xinclude, an XML entity declaration with a duplicate name as an existing one can cause a use-after-free error.
While libxml2 is expanding an internal entity, a recursive XInclude
can parse another document that declares an entity with the same
name. Both parses use the same XmlState entity
map on the librsvg side. entity_insert() replaces the first entry, whose Drop
implementation calls xmlFreeNode(). The outer xmlCtxtParseEntity()
then keeps using the freed 144-byte xmlEntity.
The included parse should not free an entity that the outer parser is still using.
The fix is in commit 8a1b0cd319e9af2d1e9cf878081dd77f227a0504, where librsvg will no longer free xmlEntity pointers that libxml2 is still using.
This page as .md · .json · in your agent: get_signal("CVE-2026-96889")
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.