-
Notifications
You must be signed in to change notification settings - Fork 148
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merged PR 31853: Always return SignInResult.Failed if updating Access…
…FailedCount fails This addresses MSRC Case 7810. Before this change, an attacker could leverage a race condition to exceed the MaxFailedAccessAttempts enforced by SignInManager. This change addresses the issue by updating SignInManager to always return the same SignInResult.Failed status when updating AccessFailedCount fails even if it was attempting to reset the count after an otherwise successful login. As Levi Broderick pointed out on the associated email thread, > The point of account lockout policy isn't necessarily to prevent the attacker from sending lots of requests to the server. Rather, it's to prevent the attacker from using the server as an endless "is this password correct?" oracle. This is achieved by placing an upper a limit on the number of answers the oracle provides. The insight from today's meeting is that it's ok for the server to process a number of requests which exceeds this limit, as long as the oracle never provides more than the configured number of answers. ## Customer Impact This addresses an MSRC case related to password stuffing. ## Regression? - [ ] Yes - [x] No ## Risk - [ ] High - [ ] Medium - [x] Low This only impacts login and 2fa attempts when updating the AccessFailedCount returns a failed IdentityResult. Failed IdentityResults when persisting other changes to the user store already causes numerous issues. ## Verification - [x] Manual (required) - [x] Automated ## Packaging changes reviewed? - [ ] Yes - [ ] No - [x] N/A
- Loading branch information
Showing
4 changed files
with
57 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters