Privilege Escalation Bugs Patched in Linux Kernel

A total of five vulnerabilities that could lead to local privilege escalation were recently identified and fixed in the Linux kernel.

Identified by Positive Technologies security researcher Alexander Popov, the high severity bugs resided in the virtual socket implementation of the Linux kernel.

Tracked as CVE-2021-26708 and featuring a CVSS score of 7.0, the security holes were introduced in Linux kernel version 5.5 in November 2019.

The vulnerabilities are the result of race conditions that were added with virtual socket (VSOCK) multi-transport support, with all major GNU/Linux distributions impacted, as the vulnerable kernel drivers (CONFIG_VSOCKETS and CONFIG_VIRTIO_VSOCKETS) are shipped to all of them, as kernel modules.

Upon the creation of an AF_VSOCK socket, the vulnerable modules are automatically loaded, Positive Technologies explains. The bugs can be abused by unprivileged users.

The issues, Popov says, are race conditions rooted in wrong locking in net/vmw_vsock/af_vsock.c.

The bug exists because the vsock_sock.transport pointer is copied to a local variable that is used after lock_sock() is called. However, the vsock_sock.transport value may change before lock_sock() is called, thus causing the race condition.

The suggested fix involves copying the vsock_sock.transport pointer to the local value after lock_sock() has been called.

"I successfully developed a prototype exploit for local privilege escalation on Fedora 33 Server, bypassing x86_64 ..