Miggo Logo

CVE-2019-10910:
Symfony Service IDs Allow Injection

9.8

CVSS Score
3.0

Basic Information

EPSS Score
0.94874%
Published
11/18/2019
Updated
9/21/2023
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
symfony/dependency-injectioncomposer>= 2.7.0, < 2.7.512.7.51
symfony/dependency-injectioncomposer>= 2.8.0, < 2.8.502.8.50
symfony/dependency-injectioncomposer>= 3.0.0, < 3.4.263.4.26
symfony/dependency-injectioncomposer>= 4.0.0, < 4.1.124.1.12
symfony/dependency-injectioncomposer>= 4.2.0, < 4.2.74.2.7
symfony/proxy-manager-bridgecomposer>= 2.7.0, < 2.7.512.7.51
symfony/proxy-manager-bridgecomposer>= 2.8.0, < 2.8.502.8.50
symfony/proxy-manager-bridgecomposer>= 3.0.0, < 3.4.263.4.26
symfony/proxy-manager-bridgecomposer>= 4.0.0, < 4.1.124.1.12
symfony/proxy-manager-bridgecomposer>= 4.2.0, < 4.2.74.2.7
symfony/symfonycomposer>= 2.7.0, < 2.7.512.7.51
symfony/symfonycomposer>= 2.8.0, < 2.8.502.8.50
symfony/symfonycomposer>= 3.0.0, < 3.4.263.4.26
symfony/symfonycomposer>= 4.0.0, < 4.1.124.1.12
symfony/symfonycomposer>= 4.2.0, < 4.2.74.2.7

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from two key issues: 1) Missing validation in service ID setters (setAlias/setDefinition) allowing dangerous characters, and 2) Unsafe string interpolation in code generation (ProxyDumper/PhpDumper). The commit adds ID validation via strcspn() checks and replaces direct string interpolation with var_export/doExport escaping. The CWE-89 mapping confirms this is an injection flaw caused by improper neutralization of special elements in SQL/PHPDumper contexts when service IDs are user-controlled.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

In Sym*ony ***or* *.*.**, *.*.x ***or* *.*.**, *.x ***or* *.*.**, *.x ***or* *.*.**, *n* *.*.x ***or* *.*.*, w**n s*rvi** i*s *llow us*r input, t*is *oul* *llow *or SQL Inj**tion *n* r*mot* *o** *x**ution. T*is is r*l*t** to sym*ony/**p*n**n*y-inj**t

Reasoning

T** vuln*r**ility st*mm** *rom two k*y issu*s: *) Missin* v*li**tion in s*rvi** I* s*tt*rs (s*t*li*s/s*t***inition) *llowin* **n**rous ***r**t*rs, *n* *) Uns*** strin* int*rpol*tion in *o** **n*r*tion (Proxy*ump*r/P*p*ump*r). T** *ommit ***s I* v*li*