A new vulnerability has been discovered in the Linux Sudo program let unprivileged users can run the command as root by specifying the user ID -1 or 4294967295.
Sudo (Superuser Do) program in Linux is responsible to allocate the security privileges to run commands for normal users and by default for Superusers.
The vulnerability affected the Sudo versions before 1.8.28 and the potential users to bypass the Runas user restrictions.
Runas basically referred to allow a Linux user to start an application with different user credentials, and it restricts the users to gain other privileged access.
Based on the Sudo users policy, If ALL keyword in a Runas specification, then any user to run commands as an arbitrary user.
By exploiting the vulnerability in Sudo let normal users with sufficient Sudo privileges to run commands as root even if the Runas specification explicitly disallows root access and allows to gain the complete control of the system.
Exploit the Sudo Bug (CVE-2019-14287 )
To exploit the bug, the users should have Sudo privilege, which means, the user’s entry in Runas specifier with special value ALL, so that users can run a command as an arbitrary user.
myhost alice = (ALL) /usr/bin/id
In the above command with (ALL) in Runas Specifier, a user can run the command as any users, also able to run it as an arbitrary user ID by using the #uid syntax.
sudo -u#1234 id -u
In this case, when we treat user ID -1 or 4294967295 (unsigned equivalent for -1 ), the result returns 0 (Not root).
sudo -u#-1 id -u
“So If a sudoers entry is written to allow the user to run a command as any user except root, the bug can be used to avoid this restriction,” Joe Vennix from Apple Information Security said.
According to Sudo report , For example, given the following sudoers entry:
myhost bob = (ALL, !root) /usr/bin/vi
User bob is allowed to run vi as any user but root. However, due to the bug, bob is actually able to run vi as root by running sudo -u#-1 vi, violating the security policy.
The vulnerability affected only sudoers entries where Runas specifier with ALL keyword and the vulnerability has been assigned CVE-2019-14287
It’s highly recommended to update the newly released Sudo 1.8.28 version in your Linux and soon the update will be rolled out for all the Linux distributions.