SecurityAdvisory ---------------- Time Line Vulnerability ------------------------------- -Day 05-05-2014 Security Advisory => No response -Days 08 12 19-05-2014 Multiples Advisories => No Response -Day 20-05-2014 Full Disclosure Alerts summary ******************** -CRLF injection/HTTP response splitting /crypt/cryptographp.php cfg -Apache 2.x version older than 2.2.6 Web Server -Apache 2.x version older than 2.2.8 Web Server -Apache 2.x version older than 2.2.9 Web Server -Apache httpd remote denial of service Web Server -HTML form without CSRF protection /blog /blog/transparency-report /blog/wp-login.php /blog/wp-login.php (cac6435f6386a7a635b3f12aeb81195e) /crypt /lander /login.php /report_bug.php /sign_up.php -Apache 2.x version older than 2.2.10 Web Server -Clickjacking: X-Frame-Options header missing Web Server -Sensitive page could be cached /sign_up.php (a18aae949b9855b60506dc83164afe7f) -Session Cookie without HttpOnly flag set / -TRACE method is enabled Web Server -Broken links /css/bootstrap.css /css/bs.css /pages/contact_us.php /pages/mit_license.php Password type input with autocomplete enabled /blog/wp-login.php I. VULNERABILITY ------------------------- The ASAP-Sec Penetration Testers just explain faults exposed in the title #Title: ProtonMail.ch suffers from a CRLF injection-HTTP response splitting / Apache 2.x version older than 2.2.6 -X.8 -X.9.- 2.2.10 / httpd RemoteDoS / CSRF #Vendor:https://protonmail.ch:443/ #Author:Juan Carlos García and Francisco Moraga #Follow us : http://www.highsec.es ||| Twitter:@secnight / @btshell1 II. DESCRIPTION ------------------------- -ProtonMail is incorporated in Switzerland and their servers are located in Switzerland. -They are outside of US and EU jurisdiction and all user data is protected by strict Swiss privacy laws. Because of our end-to-end encryption, They think that : "Your data is already secure and encrypted by the time it reaches our servers. We have no access to your messages, and since we cannot decrypt them, we cannot share them with third parties". -ProtonMail's segregated authentication and decryption system means logging into a ProtonMail account that requires two passwords. -The first password is used to authenticate the user and retrieve the correct account. After that, encrypted data is sent to the user. -The second password is a decryption password which is never sent to us. It is used to decrypt the user’s data in the browser so we never have access to the decrypted data or the decryption password. -For this reason, we are also unable to do password recovery. -If you forget your decryption password, we cannot recover your data. By theWay, ASAP-SEC are Verifiying this information... Let's go to the business ;) III- Vulnerabilities --------------------- CRLF injection / HTTP response splitting **************************************** This script is possibly vulnerable to CRLF injection attacks. HTTP headers have the structure "Key: Value", where each line is separated by the CRLF combination. If the user input is injected into the value section without properly escaping/removing CRLF characters it is possible to alter the HTTP headers structure. HTTP Response Splitting is a "new" application attack technique which enables various new attacks such as web cache poisoning,cross user defacement, hijacking pages with sensitive user information and cross-site scripting (XSS). The attacker sends a single HTTP request that forces the web server to form an output stream, which is then interpreted by the target as two HTTP responses instead of one response. Affected items ------------------ /crypt/cryptographp.php The impact of this vulnerability ---------------------------------- Is it possible for a remote attacker to inject custom HTTP headers. For example, an attacker can inject session cookies or HTML code. This may conduct to vulnerabilities like XSS (cross-site scripting) or session fixation. How to fix this vulnerability ------------------------------------ You need to restrict CR(0x13) and LF(0x10) From the user input or properly encode the output in order to prevent the injection of custom HTTP headers. Attack details -------------------- URL encoded GET input cfg was set to