WordPress Remote Admin Password Reset Vulnerability
The password of my WordPress admin account was not valid when I tried to login today. I first thought it was a problem with the LastPass password manager and tried to see if I was still logged into the service.
When I checked my email inbox I noticed that I have received a new password for the account. That was strange since I did not request a new password.
It was not that much of a concern to me as I thought that someone might have used the password reset functionality to reset the password which meant that physical access to the new password was not possible.
A new post appeared on the WordPress discussion list today revealing more details about what happened on that day.
Anyone is apparently able to reset a WordPress password if the email address of the WordPress user is known. All that needs to be done is to point the web browser at http://www.domain.com/wp-login.php?action=lostpassword to reset the password.
The email address of the account holder has to be supplied in the form. WordPress sents a confirmation email first usually to the registered email address to verify the request. This is done to prevent abuse of the system so that passwords do get reset without the actual account owner requesting it.
The vulnerability that was revealed recently manipulates the query to skip this step.
It is not possible to exploit this vulnerability further, which means attackers cannot get access to the user account. All that is possible is to reset the password of the account, which is definitely a nuisance for the account owner.
It can however be used theoretically to reset the password regularly to lock the user or admin out of the WordPress blog.
A temporary fix for the remote admin password reset vulnerability was posted. WordPress administrators need to change one line of code in the wp-login.php file of the WordPress installation to protect their blog from the attack.
if ( empty( $key ) )
if ( empty( $key ) || is_array( $key ) )
It is advised to apply the temporary fix as soon as possible to WordPress installations.
Update: WordPress has fixed the issue in recent versions of the software. It is no longer necessary to implement the patch manually.Advertisement