Researchers have warned of a vulnerability present on an estimated 10 percent of Android phones that may allow attackers to obtain highly sensitive credentials, including cryptographic keys for some banking services and virtual private networks, and PINs or patterns used to unlock vulnerable devices.

The vulnerability resides in the Android KeyStore, a highly sensitive region of the Google-made operating system dedicated to storing cryptographic keys and similar credentials, according to an advisory published this week by IBM security researchers. By exploiting the bug, attackers can execute malicious code that leaks keys used by banking and other sensitive apps, virtual private network services, and the PIN or finger patterns used to unlock handsets. The advisory said Google has patched the stack-based buffer overflow only in version 4.4, aka KitKat, of Android. The remaining versions, which according to Google figures run 86.4 percent of devices, have no such fix. In an update, IBM said the vulnerability affected only version 4.3, which runs on about 10.3 percent of handsets.

There are several technical hurdles an attacker must overcome to successfully exploit the vulnerability. Android is fortified with modern software protections, including data execution prevention and address space layout randomization, both of which are intended to make it much harder for hackers to execute code when they identify security bugs. Attackers would also have to have an app installed on a vulnerable handset. Still, the vulnerability is serious because it resides in KeyStore, arguably one of the most sensitive resources in the Android OS. In an e-mail, Dan Wallach, a professor specializing in Android security in the computer science department of Rice University, explained:

Generally speaking this is how apps are going to store their authentication credentials, so if you can compromise the KeyStore, you can log in as the phone's user to any service where they've got a corresponding app, or, at least, an app that remembers who you are and lets you log back in without typing a password. This means that most banking apps, which force you to type your password every time, are probably safe against this particular attack. The amount of damage you can do, then, has a lot to do with which apps this lets the attacker compromise. If the attacker can compromise your Twitter account, then yeah, they can spew spam in your name. Not very exciting. If the attacker can get anywhere near your money, then it gets more interesting. Likewise, for companies that load VPN credentials into your phone, so you can connect through their firewall to their internal services, there could be a variety of nasty attacks, since you've effectively given the attacker the keys to get through the firewall.

Pau Oliva, senior mobile security engineer at viaForensics, said the vulnerability could pose other threats, since it allows attackers access to the Android resource that performs sensitive cryptographic operations.

"A malicious user exploiting this vulnerability would be able to do RSA key generation, signing, and verification on behalf of the smartphone owner," Oliva told Ars.

In addition to snuffing the vulnerability in Android version 4.4, it wouldn't be surprising if Google offered additional protections through the Bouncer service that scours Google Play for malicious apps. Presumably, it wouldn't be hard to introduce code that closely scrutinizes apps that involve the KeyStore. Then again, malicious and abusive apps bypass the protective Bouncer filter on a regular basis, and white-hat hackers in the past have identified key weaknesses in Bouncer. Android users who rely on their devices for managing money and storing confidential information are once again advised to carefully vet apps before installing them and to think long and hard before installing apps available in markets outside of Google Play.

Listing image: Listener42 (remixed)

Post updated on June 30 to correct the percentage of handsets affected. It's about 10.3 percent.