Email usurpation through the public mail of all GitLab user's mail
**[HackerOne report #454335](https://hackerone.com/reports/454335)** by bubbounty on 2018-12-03: **Summary:** Bypass of the email checks when a user add an email to his profile **Description:** When a user wishes add emails to his account, some checks are carried out ( is the email a valid email ?, is the email already taken ?, etc ...). Below is a simple way to bypass these checks and by hence to usurp all gitlab user's emails. ## Steps To Reproduce: Just add an e-mail and intercept the request with a proxy tool such as Burp Suite. You will have to change the **email[email]**. Here is an exemple (take note that the **@** character for the email in bcc is double-encoded): ![mail3.png](https://h1.sec.gitlab.net/a/454335/384849/mail3.png) After that, indicate this new email as the public one on your profile and the result will be as follow: ![mail1.png](https://h1.sec.gitlab.net/a/454335/384846/mail1.png) Additionnaly, you can obtain strange results as showed bellow : ![mail2.png](https://h1.sec.gitlab.net/a/454335/384847/mail2.png) ## Impact Public email address should be in a status **verified** before to be usable. The new email regex check should be more restrictive. By this way, a bad guy can usurp other email addresses, already existing on the system. ## Attachments **Warning:** Attachments received through HackerOne, please exercise caution! * [mail3.png](https://h1.sec.gitlab.net/a/454335/384849/mail3.png) * [mail2.png](https://h1.sec.gitlab.net/a/454335/384847/mail2.png) * [mail1.png](https://h1.sec.gitlab.net/a/454335/384846/mail1.png)
issue