fix(auth): return error when bcrypt fails in CreateUser handler#5561
Open
g-k-s-03 wants to merge 3 commits into
Open
fix(auth): return error when bcrypt fails in CreateUser handler#5561g-k-s-03 wants to merge 3 commits into
g-k-s-03 wants to merge 3 commits into
Conversation
Signed-off-by: g-k-s-03 <govindsingh97704@gmail.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes a security/consistency bug in the authentication REST API where bcrypt.GenerateFromPassword() failures in the CreateUser handler were logged but not returned, allowing user creation to continue with an invalid/empty password hash.
Changes:
- Return an HTTP error response when bcrypt password hashing fails during user creation.
- Abort handler execution immediately after responding on bcrypt failure.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -81,6 +81,8 @@ func CreateUser(service services.ApplicationService) gin.HandlerFunc { | |||
| hashedPassword, err := bcrypt.GenerateFromPassword([]byte(userRequest.Password), utils.PasswordEncryptionCost) | |||
| if err != nil { | |||
| log.Error("auth error: Error generating password") | |||
Comment on lines
+84
to
+85
| c.JSON(utils.ErrorStatusCodes[utils.ErrServerError], presenter.CreateErrorResponse(utils.ErrServerError)) | ||
| return |
Signed-off-by: g-k-s-03 <govindsingh97704@gmail.com>
Author
|
Hi @PriteshKiri I've addressed both Copilot review comments. Could you please approve the workflow run so CI can execute? Happy to make any further changes |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes a security bug where bcrypt.GenerateFromPassword() failure was silently ignored in the CreateUser handler. When bcrypt failed, the error was logged but execution continued with an empty password hash, causing a user account to be created in an invalid state with no valid password — while returning 200 OK to the caller.
This PR adds the missing HTTP error response and return statement so the handler aborts correctly on bcrypt failure, consistent with all other error blocks in the same file.
Fixes #5552
For the checklist, check these boxes:
Bugfix
I have read the CONTRIBUTING doc
I have signed the commit for DCO to be passed
For Special notes for your reviewer, paste this:
The fix is minimal — exactly 2 lines added inside the existing if err != nil block at line 82 of user_handlers.go. No other logic was modified. The error response uses ErrServerError which is the correct code for a server-side bcrypt failure, matching the pattern used throughout the rest of the file.