Skip to main content

Password change without identity check


The system allows a user to change their password without requesting the previous one or enforcing another identity verification mechanism.


Gain total control over a user account.


  • Guarantee that the current password is needed when a password change is requested by users.
  • Use a second authentication mechanism to ensure the password change is performed by the account owner.


Authenticated attacker from the Internet.

Expected Remediation Time

⌚ 15 minutes.


Default score using CVSS 3.1. It may change depending on the context of the vulnerability.


  • Attack vector: L
  • Attack complexity: L
  • Privileges required: N
  • User interaction: N
  • Scope: U
  • Confidentiality: N
  • Integrity: L
  • Availability: L


  • Exploit code madurity: X
  • Remediation level: U
  • Report confidence: C


  • Vector string: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L/E:X/RL:U/RC:C
  • Score:
    • Base: 5.1
    • Temporal: 5.1
  • Severity:
    • Base: Medium
    • Temporal: Medium

Code Examples

Compliant code

The application includes methods to validate the account owner is requesting the password change

public void changePassword(userCredentials, newPassword){
Password password = userCredentials.password;
if(isValid(userCredentials.user, password)) {
Account account = application.resetPassword(newPassword);
//Code to redirect user and change password not shown

Non compliant code

The application does not validate the user is authorized to reset the password

public void changePassword(userId, newPassword){
if(isValidUser(userId)) {
Account account = application.resetPassword(newPassword);


free trial

Search for vulnerabilities in your apps for free with our automated security testing! Start your 21-day free trial and discover the benefits of our Continuous Hacking Machine Plan. If you prefer a full service that includes the expertise of our ethical hackers, don't hesitate to contact us for our Continuous Hacking Squad Plan.