Miggo Logo

CVE-2019-18888:
Argument injection in a MimeTypeGuesser in Symfony

7.5

CVSS Score

Basic Information

EPSS Score
-
Published
12/2/2019
Updated
2/1/2024
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
symfony/http-foundationcomposer>= 2.0.0, < 2.8.522.8.52
symfony/http-foundationcomposer>= 3.0.0, < 3.4.353.4.35
symfony/http-foundationcomposer>= 4.0.0, < 4.2.124.2.12
symfony/http-foundationcomposer>= 4.3.0, < 4.3.84.3.8
symfony/mimecomposer>= 4.3.0, < 4.3.84.3.8
symfony/symfonycomposer>= 2.0.0, < 2.8.522.8.52
symfony/symfonycomposer>= 3.0.0, < 3.4.353.4.35
symfony/symfonycomposer>= 4.0.0, < 4.2.124.2.12
symfony/symfonycomposer>= 4.3.0, < 4.3.84.3.8

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability exists in the MIME type guessing logic that passes user-controlled filenames to the 'file' command. Both HttpFoundation and Mime components contained FileBinaryMimeTypeGuesser implementations that failed to properly escape filenames starting with dashes. The security patches modified these guesser implementations to add proper argument escaping, as evidenced by Symfony's release notes mentioning 'fix guessing mime-types of files with leading dash'. These functions would appear in stack traces when processing malicious filenames during MIME type detection.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

*n issu* w*s *is*ov*r** in Sym*ony *.*.* t*rou** *.*.**, *.*.* t*rou** *.*.**, *.*.* t*rou** *.*.**, *n* *.*.* t*rou** *.*.*. I* *n *ppli**tion p*ss*s unv*li**t** us*r input *s t** *il* *or w*i** MIM* typ* v*li**tion s*oul* o**ur, t**n *r*itr*ry *r*u

Reasoning

T** vuln*r**ility *xists in t** MIM* typ* *u*ssin* lo*i* t**t p*ss*s us*r-*ontroll** *il*n*m*s to t** '*il*' *omm*n*. *ot* *ttp*oun**tion *n* Mim* *ompon*nts *ont*in** *il**in*ryMim*Typ**u*ss*r impl*m*nt*tions t**t **il** to prop*rly *s**p* *il*n*m*s