Qualys security researchers warn of an easily exploitable privilege escalation vulnerability in polkit’s pkexec, a SUID-root program found in all Linux distributions.
Formerly PolicyKit, Polkit is a component in Unix-like operating systems used to control system-wide privileges, allowing non-privileged processes to communicate with privileged ones. Polkit’s pkexec command can be used to execute commands with root privileges.
The security flaw – which is identified as CVE-2021-4034 and named PwnKit – has been around for more than 12 years, being introduced in pkexec in May 2009. Qualys has verified that default installations of CentOS, Debian, Fedora, and Ubuntu are vulnerable and warns that other Linux distributions might be vulnerable as well.
“Successful exploitation of this vulnerability allows any unprivileged user to gain root privileges on the vulnerable host,” Qualys notes.
The root cause of the issue is an out-of-bounds write that is created when pkexec’s main function processes command-line arguments and attempts to locate the program to be executed.
Because of this out-of-bounds write, an attacker can introduce an “unsecure” variable into pkexec’s environment. However, available options for unsecure variables are limited, because pkexec completely clears its environment shortly after the out-of-bounds write, Qualys says.
The security researchers found one such variable that allowed them to execute arbitrary libraries, which managed to exploit CVE-2021-4034 to execute their own shared library, as root.
Qualys also says the vulnerability is a memory corruption that “is exploitable instantly, reliably, in an architecture-independent way,” even if the polkit daemon is not running. The flaw cannot be exploited remotely, but does allow any unprivileged local user to gain full root privileges.
CERT/CC vulnerability analyst Will Dormann noted on Twitter that an exploit released for CVE-2021-4034 is “simple and universal.”
The security hole was reported in November 2021 and a patch was issued on January 11, 2022.
With polkit supported on non-Linux operating systems as well, including Solaris and BSD, the attack surface for this security hole is wide. However Qualys says that OpenBSD is not exploitable.
However, considering the fact that both Linux and non-Linux operating systems are impacted, Qualys recommends applying the available patches for this vulnerability as soon as possible.
Qualys also notes that the exploitation technique they discovered leaves traces in logs, meaning that one can check their environment for potential exploitation attempts.
Related: Linux Foundation Fixes ‘Dangerous’ Code Execution Kernel Bug
Related: GitHub Discloses Details of Easy-to-Exploit Linux Vulnerability
Related: Researcher Finds Vulnerability Impacting Multiple Linux Marketplaces