"This vulnerability makes it possible to change an application's code without affecting the cryptographic signature of the application -- essentially allowing a malicious author to trick Android into believing the app is unchanged even if it has been," said Jeff Forristal, CTO of information security research firm Bluebox Labs, in a blog post. Malware disguised using this technique would have full access to any data or applications on the device. As a result, it could not only steal and send data to an attacker, but also be used to post messages via the device owner's Facebook or Twitter accounts.
Bluebox discovered the Android master key vulnerability and "responsibly disclosed" it to Google in February, before publicly revealing the existence of the bug -- sans any technical details -- last week. "This vulnerability, around at least since the release of Android 1.6 [codename Donut], could affect any Android phone released in the last four years -- or nearly 900 million devices -- and depending on the type of application, a hacker can exploit the vulnerability for anything from data theft to creation of a mobile botnet," said Forristal.
[ Meanwhile, Microsoft issues a flurry of fixes for Windows. Read Microsoft Patch Tuesday Fixes Six Critical Bugs. ]
Dubbed "Android bug security bug 8219321," the vulnerability allows attackers to inject malicious code into otherwise legitimate apps. While the technique has long been used by attackers to repackage legitimate apps as malware, they previously needed to change both the application and publisher name and also sign any Trojanized app with their own digital signature, according to a Symantec Security Response blog post. Such changes left telltale signs of malicious intent, such as the fact that the app wouldn't have been distributed by its legitimate publisher.
Thanks to the new vulnerability, however, Symantec said it's "extremely simple" for attackers to disguise malware as a legitimate app: "Now that attackers no longer need to change these digital signature details, they can freely hijack legitimate applications and even an astute person could not tell the application had been repackaged with malicious code."
Subsequently, a "quick & dirty PoC" -- proof-of-concept -- exploit for the vulnerability, comprising just 32 lines of shell script, was posted to Github Monday by viaForensics mobile security engineer Pau Oliva. Software engineer Ryan Welton then refined the exploit code and posted "a slightly more resilient tool."
Oliva also addressed criticism that he'd put Android users at risk or preempted the "One Root To Own Them All" presentation scheduled to be delivered by Bluebox's Forristal next month at the Black Hat conference in Las Vegas. "Details about the bug [were] already public in CyanogenMod's bug report & patch, I just wrote a PoC," tweeted Oliva.
When it comes to the vulnerability, the good news -- according to Symantec -- is that based on its scans of 4 million Android applications, no attacker has yet exploited the vulnerability to create malicious applications. That said, the security firm did discover what appears to be inadvertent use of the technique by a number of apps. "These apps are all built using a common popular build tool chain, which may have a bug resulting in malformed APK [Android] files," Symantec stated.
Unfortunately, the vast majority of Android devices remain unpatched against the vulnerability, although Google did quietly patch the related flaw in February in the Android codebase, reported Android Police. Pending a patch, however, Android users should beware downloading APK files -- Android apps -- from anywhere but the official Google Play app store.
Forristal told Threatpost that Google had originally planned to issue a patch via the Android Open Source Project and to release firmware fixes for Nexus devices in June. That would have been just 90 days after he filed his bug report. But Forristal said Google recently told him that it had pushed back the scheduled release to Aug. 1, which is the date of his Black Hat presentation.
A Google spokesman didn't immediately respond to an emailed request for a status update on Google's patch-distribution timeline. But regardless of when Google releases a fix, if history is any guide, most Android users will have to wait months -- if not forever -- to see a related patch from their handset manufacturer or carrier.
Android Police did report, however, that all Samsung Galaxy S4 and HTC One devices running Android 4.2.2 or above have a related patch for the master key vulnerability. But it said that the majority of HTC One devices are only running Android 4.1.2, and thus remain vulnerable.
Another patching option is available via the third-party Android firmware CyanogenMod, as the developers behind the project not only worked out full technical details of the vulnerability, but have updated their Android 4.1 firmware with a fix. Installing CyanogenMod isn't for everyone, as it requires flashing a device's ROM. Still, anyone using an Android device that's no longer supported by handset manufacturers -- but is compatible with CyanogenMod -- should consider adopting the firmware as a way to safeguard their device against numerous types of exploits. In many cases, the firmware also makes devices on which it's installed run faster.