Affected versions
Symfony versions >=5.4.21, <5.4.31, and >= 6.2.7, < 6.3.8 of the Symfony
Security HTTP component are affected by this security issue.
The issue has been fixed in Symfony 5.4.31, 6.3.8.
Description
SessionStrategyListener
does not always migrate the session after a
successful login. It only migrate the session when the logged-in user identifier
changes. In some use cases, the user identifier doesn't change between the
verification phase and the successful login, while the token itself changes from
one type (partially-authenticated) to another (fully-authenticated). When this
happens, the session id
should be regenerated to prevent possible session
fixations.
Resolution
Symfony now checks the type of the token in addition to the user identifier
before deciding whether the session id should be regenerated.
The patch for this issue is available here for branch 5.4.
Credits
We would like to thank Robert Meijers for reporting the issue and providing the fix.
Sponsor the Symfony project.