Symfony 2.3.0 to 2.3.40, 2.7.0 to 2.7.12, 2.8.0 to 2.8.5, and 3.0.0 to 3.0.5
versions of the Security component are affected by this security issue when
using the username/password form authentication listener (and its simpler
version SimpleFormAuthenticationListener
).
This issue has been fixed in Symfony 2.3.41, 2.7.13, 2.7.13, 2.8.6, and 3.0.6.
Note that no fixes are provided for Symfony 2.4, 2.5, and 2.6 as they are not maintained anymore.
When an authentication form is submitted by the user and if the user does not exist, the submitted username is stored in the session. If an attacker submit multiple requests with large usernames, he can potentially fill up the session storage.
The fix consists in limiting the size of the usernames accepted by the form. To avoid any BC break, the limit is set to 4096 characters, which should be more than enough for normal usages.
The patch for this issue is available here.
I would like to thank Marek Alaksa of Citadelo for reporting this security issue. Thanks to Fabien Potencier for writing the fix for the various Symfony versions.
What a Symfony developer should know about the framework: News, Jobs, Tweets, Events, Videos,...