A patch for a critical Linux kernel flaw, present in the code since 2012, is expected to be pushed out today.

The vulnerability affects versions 3.8 and higher, said researchers at startup Perception Point who discovered the vulnerability. The flaw also extends to two-thirds of Android devices, the company added.

“It’s pretty bad because a user with legitimate or lower privileges can gain root access and compromise the whole machine,” Yevgeny Pats, cofounder and CEO of Perception Point. “With no auto update for the kernel, these versions could be vulnerable for a long time. Every Linux server needs to be patched as soon the patch is out.”

Pats said an attacker would require local access to exploit the vulnerability on a Linux server. A malicious mobile app would get the job done on an Android device (Kit-Kat and higher), he said. Pats added that exploitation of the flaw is fairly straightforward, but it’s unknown whether it’s been attacked to date.

“The fix was simple,” Pats said. “The problem is not all devices Linux get patched automatically.”

The vulnerability, CVE-2016-0728, lives in the keyring facility built into the various flavors of Linux. The keyring encrypts and stores login information, encryption keys and certificates, and makes them available to applications. In a report published by Perception Point, researchers said the vulnerability is a reference leak that can be abused to ultimately execute code in the Linux kernel.

“User space applications give [keyring] the option to manage the crypto keys,” Pats said. “The user doesn’t have to manage keys; the OS does it for the application. Apps use it for security reasons. When they want to apps to work with crypto, they use this feature. The feature has kernel access; the OS gives the userland app the ability to use this feature. The problem is that the code runs in the kernel.”

Pats said that SMEP (Supervisor Mode Execution Protection) and SMAP (Supervicor Mode Access Protection) make exploitation difficult on Linux servers, while SELinux does the same for Android devices. SMEP and SMAP are relatively new features that prevent the kernel from accessing and executing code from userland.

The flaw may linger a little longer on Android devices, since most updates are not pushed automatically by carriers and manufacturers. Android is built upon the Linux kernel, but customized without many of the libraries that accompany standard Linux builds.

Perception Point published a technical analysis of the vulnerability and how to exploit it, including proof-of-concept code published to its Github page.