Make WordPress Core

Opened 5 weeks ago

Last modified 2 weeks ago

#63125 new enhancement

Let hidden if an email address is registered on the website

Reported by: sgr33n's profile SGr33n Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: trunk
Component: Login and Registration Keywords:
Focuses: Cc:

Description

Hi,
The password recovery method expected for WordPress allows a malicious user to know if an email address is registered on the website.
Infact if you use the password lost feature, if you enter a non existent email address the error is "Error: There is no account with that username or email address"... so you could tests an amount of email addresses and discover which one is registered on the website.

In my opinion it could be better to have in every condition a generic message like "If the entered email address is on our database you will recive an email with the instructions to reset your password".

Eventually I might take care of this enhancement.

Thanks :)

P.S. This is also related to the paragraph "Why did I get this “Password Reset” email?" on https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/

Change History (4)

#1 follow-up: @r3n0
5 weeks ago

Hi there,

There is similar functionality if account registration is enabled on the website. You go through the email value without entering the desired username. Due to a partially filled form, registration doesn't occur, but you see whether the email is registered in the system or not. In any way, you need a huge database to iterate over email values, and the final goal looks pretty questionable.

https://i.imgur.com/TKb52HQ.png

#2 in reply to: ↑ 1 @SGr33n
5 weeks ago

Replying to r3n0:

Hi!
Sure, an already registered email would recive, also registering, the lost password link.
Huge databases exist, but this is not only for bruting force. It's also, in my opinion, a privacy leak. If I know your email and I wanna check if you're registered on that site I can.

Don't just think on WordPress as a blog, think if it's a WooCommerce online pharmacy, I could know if you buyed something on that ecommerce... just as an example.

This ticket was mentioned in Slack in #core-privacy by joemcgill. View the logs.


5 weeks ago

#4 @Presskopp
2 weeks ago

related #62960

You can also check for registered users via REST API like that: https://wordpress.org/wp-json/wp/v2/users

The information you get is considered as 'public'

In that case the REST API access can be disabled but is enabled by default.

Note: See TracTickets for help on using tickets.