VMware has released an update for the macOS version of Fusion to fix a privilege escalation vulnerability for which it initially released an incomplete patch. However, one of the researchers who found it says the patch is “still bad.”
VMware told customers on March 17 that Fusion, Remote Console (VMRC) and Horizon Client for Mac are impacted by a high-severity privilege escalation vulnerability tracked as CVE-2020-3950. The weakness, related to the improper use of setuid binaries, allows an attacker with regular user privileges to escalate permissions to root.
The company released version 11.5.2 to patch the vulnerability, but the researchers credited for reporting the vulnerability to VMware — Jeffball from cybersecurity firm GRIMM and Rich Mirch — both found that the patch was incomplete.
The researchers made available technical details and proof-of-concept (PoC) exploit code after VMware released the initial patches.
Mirch provided the following description for the vulnerability: VMware USB Arbitrator Service and Open VMware Fusion Services are both setuid root binaries located at /Applications/VMware Fusion.app/Contents/Library/services. When executed outside of the standard path the binaries can be tricked into executing a program from a path that the attacker controls. This is achieved by creating a hard link to the original binary. The binaries use part of the attacker-controlled path when executing the service and do not correctly validate that the target binary is legit.
After it was informed about the incomplete patch, VMware updated its advisory with instructions for preventing exploitation and promised to release a complete patch in the next Fusion release.
VMware has now released 11.5.3, which the company says includes a complete patch. Mirch told SecurityWeek that he didn’t get a chance to immediately analyze the new patch, but Jeffball has and he discovered that it can be bypassed. The researcher says he has created a new PoC exploit.
After VMware released its first patch for CVE-2020-3950, Jeffball told SecurityWeek that the “Open VMware Fusion Services binary is fixed, but the Open VMware USB Arbitrator Service binary is not. When running the exploit for Fusion services, it gets a bad code signature error, but the same thing works fine on the USB arbitrator service.”
After VMware’s second patch, the researcher said, “Basically the fix has a TOCTOU [time-of-check time-of-use] issue now since they only check the signature at the start of the binary, and thus an exploit can race the code to swap it after the check.”