Affected versions
All 1.0.x, 1.1.x, 1.2.x and 1.3.x versions of FOSUserBundle are affected by this security issue. The 2.0.x development version is not affected.
The issue has been fixed in FOSUserBundle 1.3.5. Note that no fixes are provided for FOSUserBundle 1.0, 1.1 and 1.2 as they are not maintained anymore.
Description
Because of the usage of base_convert
which looses precision for large inputs, the entropy of
tokens generated by FOSUserBundle for the email confirmation and password resetting is lost.
This makes these tokens much less random than they are expected to be, and so not cryptographically
safe.
Resolution
The token generation logic used in the 2.0.x branch based on base64 encoding has been backported.
This changes the range of characters used in the token. Any route placeholder expected to match
a token generated by FOSUserBundle must be updated to allow dashes, which are not allowed by \w
in regexes. A \w+
requirement should so become [\w\-]+
.
Credits
I would like to thank Andreas Forsblom for reporting this security issue and Jonathan McLean for contributing the implementation which has been backported.