Miggo Logo

CVE-2019-18887:
Symfony Http-Kernel has non-constant time comparison in UriSigner

8.1

CVSS Score
3.1

Basic Information

EPSS Score
0.73281%
Published
3/26/2022
Updated
2/1/2024
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
symfony/http-kernelcomposer>= 2.2.0, < 2.8.522.8.52
symfony/http-kernelcomposer>= 3.0.0, < 3.4.353.4.35
symfony/http-kernelcomposer>= 4.0.0, < 4.2.124.2.12
symfony/http-kernelcomposer>= 4.3.0, < 4.3.84.3.8
symfony/symfonycomposer>= 2.2.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 stems from insecure signature comparison in UriSigner. The Symfony blog explicitly states they fixed it by implementing hash_equals(), a constant-time comparison function. The checkSignature() method is the logical location for signature validation in UriSigner, and the CVE description specifically mentions the URISigner class as the vulnerable component. The high confidence comes from: 1) Official Symfony documentation confirming the fix pattern 2) Security bulletin specificity about the affected component 3) Standard cryptographic practice that signature verification requires constant-time comparisons.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

W**n ****kin* t** si*n*tur* o* *n URI (*n *SI *r**m*nt URL *or inst*n**), t** URISi*n*r *i* not us** * *onst*nt tim* strin* *omp*rison *un*tion, r*sultin* in * pot*nti*l r*mot* timin* *tt**k vuln*r**ility.

Reasoning

T** vuln*r**ility st*ms *rom ins**ur* si*n*tur* *omp*rison in `UriSi*n*r`. T** Sym*ony *lo* *xpli*itly st*t*s t**y *ix** it *y impl*m*ntin* `**s*_*qu*ls()`, * *onst*nt-tim* *omp*rison *un*tion. T** `****kSi*n*tur*()` m*t*o* is t** lo*i**l lo**tion *o