CVE-2018-11386: Denial of service when using PDOSessionHandler
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 http-foundation 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.
PDOSessionHandler class allows to store sessions on a PDO connection.
Under some configurations (see below) and with a well-crafted payload, it was
possible to do a denial of service on a Symfony application without too much
An application is vulnerable when:
It is using
PDOSessionHandlerto store its sessions;
And it uses MySQL as a backend for sessions managed by
And the SQL mode does not contain
When an application has this configuration, doing a denial of service is made easier as a well-crafted session leads to an infinite loop in the code.
We fixed this issue by avoiding the inifinite loop.
I would like to thank Federico Stange for reporting this security issue and for working with us trying to figure out when this issue occurred, Nicolas Grekas for working on a fix, and the Symfony Core Team for reviewing the patch.