A vulnerability in the Google Admin application for Android can allow rogue applications to steal credentials that could be used to access Google for Work accounts.
One of the main aspects of the Android security model is that apps run in their own sandboxes and cannot read each other's sensitive data through the file system. There are APIs for applications to interact with each other and exchange data, but this requires mutual agreement.
But researchers from security consultancy firm MWR InfoSecurity in the United Kingdom discovered a flaw in the Google Admin app that could be exploited by potentially malicious applications to break into the app's sandbox and read its files.
The flaw lies in the way Google Admin processes and loads URLs received from other applications inside a WebView -- a simplified browser window.
If a rogue application sends Google Admin a request -- or "intent" in Android parlance -- with a URL pointing to a local world-readable HTML file that the rogue app controls, Google Admin will load the file's code in a WebView.
The attacker can put an iframe inside the HTML code that will load the same file again after a one-second delay, the MWR researchers explained in an advisory published Thursday. After Google Admin loads the HTML code, but before it attempts to load the iframe, the attacker can replace the original file with one that has the same name but acts as a symbolic link to a file within the Google Admin app, they said.
WebView has a security mechanism called the Same-Origin Policy that is present in all browsers and which prevents a Web page from reading or changing code loaded in an iframe unless both the page and the iframe share the same origin -- domain name and protocol.
Even though the code loaded in the iframe belongs to a Google Admin file, its origin is the same as that of the file from the rogue application, thanks to the symlink trick. This means that the original HTML code loaded in the WebView can read the Google Admin file subsequently loaded in the iframe, passing its content to the rogue app.
"The Google Admin app for Android lets the company administrator manage their company's Gmail for Work accounts from his or her Android phone," said Robert Miller, senior security researcher at MWR, via email. "A key file in the Google Admin sandbox is a file holding a token that is used by the app to authenticate itself with the server. A malicious app could exploit the vulnerability found to read this token and attempt to log in to the Google for Work server."
The MWR researchers claim that they reported the vulnerability to Google on March 17, but even after granting the company an extension to the standard 90-day disclosure deadline, it still hadn't been fixed by Thursday.
"No updated version has been released as of the time of publication," the MWR researchers said in the advisory.
Late Friday, Google issued a press release saying it had released a fix. "We thank the researchers for flagging this to us," Google said. "We have addressed the issue in the Google Admin app and the fix has been released. In order for this issue to occur, a malicious app would need to be installed on the device. As far as we know, no one has been affected."