7-Year-Old Polkit Flaw Lets Unprivileged Linux Users Gain Root Access

Cyber Security

A seven-year-old privilege escalation vulnerability discovered in the polkit system service could be exploited by a malicious unprivileged local attacker to bypass authorization and escalate permissions to the root user.

Tracked as CVE-2021-3560 (CVSS score: 7.8), the flaw affects polkit versions between 0.113 and 0.118 and was discovered by GitHub security researcher Kevin Backhouse, who said the issue was introduced in a code commit made on Nov. 9, 2013. Red Hat’s Cedric Buissart noted that Debian-based distributions, based on polkit 0.105, are also vulnerable.

Stack Overflow Teams

Polkit (née PolicyKit) is a toolkit for defining and handling authorizations in Linux distributions, and is used for allowing unprivileged processes to communicate with privileged processes.

“When a requesting process disconnects from dbus-daemon just before the call to polkit_system_bus_name_get_creds_sync starts, the process cannot get a unique uid and pid of the process and it cannot verify the privileges of the requesting process,” Red Hat said in an advisory. “The highest threat from this vulnerability is to data confidentiality and integrity as well as system availability.”

RHEL 8, Fedora 21 (or later), Debian “Bullseye,” and Ubuntu 20.04 are some of the popular Linux distributions impacted by the polkit vulnerability. The issue has been mitigated in version 0.119, which was released on June 3.

gain root-level access

“The vulnerability is surprisingly easy to exploit. All it takes is a few commands in the terminal using only standard tools like bash, kill, and dbus-send,” said Backhouse in a write-up published yesterday, adding the flaw is triggered by sending a dbus-send command (say, to create a new user) but terminating the process while polkit is still in the middle of processing the request.

Enterprise Password Management

“dbus-send” is a Linux inter-process communication (IPC) mechanism that’s used to send a message to D-Bus message bus, allowing communication between multiple processes running concurrently on the same machine. Polkit’s policy authority daemon is implemented as a service connected to the system bus to authenticate credentials securely.

In killing the command, it causes an authentication bypass because polkit mishandles the terminated message and treats the request as though it came from a process with root privileges (UID 0), thereby immediately authorizing the request.

“To trigger the vulnerable codepath, you have to disconnect at just the right moment,” Backhouse said. “And because there are multiple processes involved, the timing of that ‘right moment’ varies from one run to the next. That’s why it usually takes a few tries for the exploit to succeed. I’d guess it’s also the reason why the bug wasn’t previously discovered.”

Users are encouraged to update their Linux installations as soon as possible to remediate any potential risk arising out of the flaw.

Articles You May Like

Samsung ISOCELL HP3 200-Megapixel Image Sensor Unveiled With Super QPD Auto-Focus Technology
Amazon Offering Fire TV Stick With a Wireless Game Controller in India to Attract Casual Gamers
NASA’s Curiosity Rover Catches Glimpses of Ancient Ponds and Deserts on Mars
Khaby Lame Reportedly Becomes Most-Followed TikTok Video Creator 
Zomato to Acquire Blinkit’s Blink Commerce in Rs. 4,447 Crore Deal