Old Habits Die Hard: Cross-Zone Scripting in Dropbox & Google Drive Mobile Apps Oct 19 2012 10:14AM
Roi Saltzman (roisaltzman gmail com)
1 Introduction
Recently, I discovered a security vulnerability in several file-sharing apps:
DropBox iOS app, DropBox Android app and Google Drive iOS app.

Exploiting this vulnerability, an attacker could steal arbitrary files
from a DropBox / Google Drive user by tricking him into viewing a malicious
HTML file inside the mobile app.

The full blog post, including the advisories, can be found at:

2 Vulnerability
A significant feature of file-sharing apps is allowing a user to view either
his files or files shared with him. The apps achieve this by using an embedded
browser (using the UIWebView/WebView classes in iOS/Android respectively)
to display the contents of these files. Amongst numerous file types,
these apps allow the user to view HTML files in a rendered format.
To do so, these apps use an embedded browser window to render the
locally stored HTML file.

The method in which these apps render an HTML file has two side effects:
1. JavaScript code contained in the HTML file is automatically executed
2. The HTML content is loaded in a privileged file zone

Execution of malicious JavaScript code allows an attacker to steal potentially
valuable information from the DOM of the embedded browser, an attack dubbed
"Cross-Application Scripting" (XAS). However, because these apps load the HTML
file from a privileged zone such as
(in iOS), the malicious JavaScript can also access the file system with the
same permissions as the app.

3 Impact
By exploiting this vulnerability, an attacker could read and retrieve files
that the apps themselves can access. For instance, previously cached files,
application configuration files, the device's address book, etc.
Furthermore, additional access can be achieved pending on the OS:

- In iOS, read access to the user's DropBox unencrypted credentials
(../Library/Preferences/com.getdropbox.Dropbox.plist). Having access to
the user's credentials allows the attacker to retrieve arbitrary files from
the user's account as well as to persist the attack by modifying other
HTML files.

- In Android, read access to the device's SD card is possible if the app
has permission to do so.

Once the HTML file is rendered, the JavaScript code executes immediately.
However, when the user has finished viewing the file (e.g. pressed the
Home button),
code execution is suspended until the user views the file again.

4 Vulnerable versions
- Version 1.4.6 (iOS)
- Version 2.0.1 (Android)
Google Drive:
- Version 1.0.1 (iOS)

5 Credit
Discovered by Roi Saltzman <roisaltzman () [google's mail server] com>

6 Acknowledgments
I'd like to thank the DropBox / Google security response teams for
the quick fixes!

[ reply ]


Privacy Statement
Copyright 2010, SecurityFocus