Affected versions

Symfony 2.7.0 to 2.7.47, 2.8.0 to 2.8.40, 3.3.0 to 3.3.16, 3.4.0 to 3.4.10, and 4.0.0 to 4.0.10 versions of the Symfony Security component are affected by this security issue.

The issue has been fixed in Symfony 2.7.48, 2.8.41, 3.3.17, 3.4.11, and 4.0.11. 4.1.0 has also been fixed before its final release.

Note that no fixes are provided for Symfony 3.0, 3.1, and 3.2 as they are not maintained anymore.

Description

By default, a user’s session is invalidated when the user is logged out. This behavior can be disabled through the invalidate_session option. In this case, CSRF tokens where not erased during logout which allowed for CSRF token fixation.

Resolution

We fixed this issue by clearing all CSRF tokens when the user is logged out.

Credits

I would like to thank Kévin Liagre for reporting this security issue, Christian Flothmann for working on a fix, and the Symfony Core Team for reviewing the patch.

Published in #Security Advisories