Miggo Logo

CVE-2018-11385: Symfony Session Fixation Vulnerability

8.1

CVSS Score
3.0

Basic Information

EPSS Score
0.75386%
Published
5/14/2022
Updated
2/8/2024
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
symfony/symfonycomposer>= 2.7.0, < 2.7.482.7.48
symfony/symfonycomposer>= 2.8.0, < 2.8.412.8.41
symfony/symfonycomposer>= 3.4.0, < 3.4.113.4.11
symfony/symfonycomposer>= 4.0.0, < 4.0.114.0.11
symfony/symfonycomposer>= 3.0.0, < 3.3.173.3.17
symfony/security-httpcomposer>= 2.7.0, < 2.7.482.7.48
symfony/security-httpcomposer>= 2.8.0, < 2.8.412.8.41
symfony/security-httpcomposer>= 3.0.0, < 3.3.173.3.17
symfony/security-httpcomposer>= 3.4.0, < 3.4.113.4.11
symfony/security-httpcomposer>= 4.0.0, < 4.0.114.0.11
symfony/securitycomposer>= 2.7.0, < 2.7.482.7.48
symfony/securitycomposer>= 2.8.0, < 2.8.412.8.41
symfony/securitycomposer>= 3.0.0, < 3.3.173.3.17
symfony/securitycomposer>= 3.4.0, < 3.4.113.4.11
symfony/securitycomposer>= 4.0.0, < 4.0.114.0.11

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stemmed from missing session migration in Guard authentication handlers. The patch added migrateSession() calls to onSuccess methods in multiple listeners. The commit diff shows UsernamePasswordJsonAuthenticationListener was missing this critical session rotation step before token storage, leaving sessions vulnerable to fixation. This matches the CVE description of Guard component session fixation and the explicit patch implementation.

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 t** S**urity *ompon*nt in Sym*ony *.*.x ***or* *.*.**, *.*.x ***or* *.*.**, *.*.x ***or* *.*.**, *.*.x ***or* *.*.**, *n* *.*.x ***or* *.*.**. * s*ssion *ix*tion vuln*r**ility wit*in t** "*u*r*" lo*in ***tur* m*y *llow *n *

Reasoning

T** vuln*r**ility st*mm** *rom missin* s*ssion mi*r*tion in *u*r* *ut**nti**tion **n*l*rs. T** p*t** ***** `mi*r*t*S*ssion()` **lls to `onSu***ss` m*t*o*s in multipl* list*n*rs. T** *ommit *i** s*ows `Us*rn*m*P*sswor*Json*ut**nti**tionList*n*r` w*s m