[1.x] Port security fixes to default login rate limiter #473
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR ports two security fixes for MySQL/MariaDB from
LoginRateLimiter
to the service provider's rate limiter (that Fortify uses on a default installation):uSer@example.com
): This fix has been included inLoginRateLimiter
from the beginning but not in the default rate limiter.uⓢer@example.com
): [1.x] Fix Throttle Bypass Exploit #354 fixed this inLoginRateLimiter
but not in the default rate limiter.I replaced
$request->email
with the more universal$request->input(Fortify::username())
fromLoginRateLimiter
.I also removed the string cast from #333 because it doesn't actually solve the issue it wanted to fix (#332). Passing an array still causes an "Array to string conversion" error.
There aren't any tests for the default rate limiter yet and I'm not sure about the bestway to test them.
The big issue with these vulnerabilities is that they don't get fixed in existing apps since the service provider is a stub file, but we can't really do anything about that.