Miggo Logo

CVE-2015-7558: librsvg DoS via Cyclic References

7.5

CVSS Score
3.0

Basic Information

EPSS Score
0.7808%
Published
5/17/2022
Updated
8/13/2023
KEV Status
No
Technology
TechnologyRust

Technical Details

CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
librsvgrust< 2.40.122.40.12

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability (CVE-2015-7558) stems from improper cycle detection when resolving SVG element references. The fix in commit a51919f7e1ca... introduced recursion depth tracking in these functions to prevent infinite loops. Prior to this patch, rsvg_acquire_node and rsvg_acquire_node_of_type recursively resolved hrefs without limiting recursion depth, leading to stack overflow when cyclic references were present. The functions' role in reference resolution and the explicit addition of depth checks in the patch confirm their vulnerability.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

li*rsv* ***or* *.**.** *llows *ont*xt-**p*n**nt *tt**k*rs to **us* * **ni*l o* s*rvi** (in*init* loop, st**k *onsumption, *n* *ppli**tion *r*s*) vi* *y*li* r***r*n**s in *n SV* *o*um*nt.

Reasoning

T** vuln*r**ility (*V*-****-****) st*ms *rom improp*r *y*l* **t**tion w**n r*solvin* SV* *l*m*nt r***r*n**s. T** *ix in *ommit ************... intro*u*** r**ursion **pt* tr**kin* in t**s* *un*tions to pr*v*nt in*init* loops. Prior to t*is p*t**, rsv*