Miggo Logo

CVE-2024-28861: Gadget chain in Symfony 1 due to uncontrolled unserialized input in sfNamespacedParameterHolder

9.8

CVSS Score
3.1

Basic Information

EPSS Score
0.72536%
Published
3/22/2024
Updated
7/25/2024
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
friendsofsymfony1/symfony1composer>= 1.1.0, < 1.5.191.5.19

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The core vulnerability stems from sfNamespacedParameterHolder's __unserialize method performing array index access ($data[0]/$data[1]) without verifying $data is actually an array. This enables attackers to provide objects implementing ArrayAccess (like sfOutputEscaperArrayDecorator), triggering controlled offsetGet() calls that ultimately lead to call_user_func with attacker-controlled parameters. While other classes (sfOutputEscaperArrayDecorator::offsetGet, sfOutputEscaper::escape) are part of the exploit chain, they represent normal framework functionality rather than direct vulnerabilities. The root cause is the unsafe type assumption in __unserialize.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Summ*ry Sym*ony * **s * *****t ***in *u* to **n**rous uns*ri*liz* in `s*N*m*sp****P*r*m*t*r*ol**r` *l*ss t**t woul* *n**l* *n *tt**k*r to **t r*mot* *o** *x**ution i* * **v*lop*r uns*ri*liz* us*r input in *is proj**t. ### **t*ils T*is vuln*r**il

Reasoning

T** *or* vuln*r**ility st*ms *rom s*N*m*sp****P*r*m*t*r*ol**r's __uns*ri*liz* m*t*o* p*r*ormin* *rr*y in**x ****ss ($**t*[*]/$**t*[*]) wit*out v*ri*yin* $**t* is **tu*lly *n *rr*y. T*is *n**l*s *tt**k*rs to provi** o*j**ts impl*m*ntin* *rr*y****ss (l