lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1805291139190.24998@o7.fi>
Date: Tue, 29 May 2018 11:42:50 +0300 (EEST)
From: Harry Sintonen <fulldisclosure@...er.fi>
To: fulldisclosure@...lists.org
Subject: [FD] foilChat sign up email PIN confirmation bypass

foilChat sign up email PIN confirmation bypass
==============================================
https://sintonen.fi/advisories/foilchat-signup-email-pin-confirmation-bypass.txt


Overview
--------

foilChat (https://www.foilchat.com/) allows anyone to register with any email
address due to a vulnerability.


Description
-----------

foilChat user names equal to user's email address. At sign up the user is required
to provide an email address. The email address is sent a 4 digit PIN code that the
user is required to enter to the application to complete the registration.

foilChat backend fails to prevent brute force attempts of the PIN code. The attacker
can attempt all 10000 different PIN codes until the correct one is found, and then
use the correct PIN to complete the registration.


Impact
------

The attacker can sign up to foilChat with any email address, bypassing the security
model of the application. Notably the user name (email address) is the only way to
confirm identity within the application.


Details
-------

The discovered vulnerabilities, described in more detail below, enable the attack
described here in brief.

1. Initiate the sign up procedure in the application with a spoofed email address

2. Brute force the correct PIN code

for p in `seq -w 0 9999`; do
   echo $p; if curl -s -d "email=victim@...mple.invalid&pin=$p" \
   https://api.foilserver.com/v2.4.3/users/check_credentials |
   grep -q true; then break; fi
done

3. Once correct PIN is found, complete the sign up with the PIN code


The attacker is now registered with the spoofed email address (user name):

https://sintonen.fi/advisories/foilchat-signup-pin-bypass.png


Vulnerabilities
---------------

1. CWE-307: Improper Restriction of Excessive Authentication Attempts

The foilChat backend fails to restrict the number of 'users/check_credentials' API
calls for a given email address. The attacker can try different PIN codes until the
correct PIN code is found, and thus bypass the email confirmation.

This issue could be fixed in several ways. One way would be to restrict the number of
'users/check_credentials' API calls that can be made. Even better, rather than having
a separate 'users/check_credentials' API call at all, the correct PIN should be
required for the actual 'users/signup' API call instead.


Vulnerable versions
-------------------

foilChat confirmed the issue fixed 2018-05-24.


Credits
-------

The vulnerability was discovered by Harry Sintonen.


Timeline
--------

2018.05.10  discovered the vulnerability
2018.05.10  reported the vulnerability via CERT-FI that forwarded it to foilChat
             security contact
2018.05.24  foilChat reported the vulnerability fixed
2018.05.24  public disclosure of the advisory

_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ