Another Flaw in Dell SupportAssist Allows Code Execution With Elevated Privileges
A researcher has discovered another DLL hijacking vulnerability in Dell SupportAssist that can be used to execute code with elevated privileges, and exploitation only requires low permissions.
In an advisory published last week, Dell revealed that Dell SupportAssist for both business and home PCs is affected by an uncontrolled search path vulnerability that allows a local user with low privileges to execute arbitrary code with elevated permissions by getting the SupportAssist binaries to load arbitrary DLLs.
The flaw, tracked as CVE-2020-5316 and classified as high severity, has been patched by Dell with the release of SupportAssist for business PCs version 2.1.4 and SupportAssist for home PCs version 3.4.1.
Eran Shimony, the CyberArk researcher credited by Dell for discovering this security hole, told SecurityWeek that it took the company roughly three months to release patches, which he says is faster compared to most of the other vulnerabilities he has reported to Dell — he says the average time-to-patch has been five months.
These types of vulnerabilities can be highly valuable to attackers considering that this software is pre-installed on millions of Dell PCs to allow users to check the health of their device. The software and hardware checks performed by the tool require elevated privileges, which is why some of its components run with SYSTEM privileges.
Several privilege escalation vulnerabilities have been found in Dell SupportAssist in the past few years, but flaws that involve DLL hijacking may require elevated privileges for exploitation and major software vendors often say they pose a low risk.
DLL hijacking involves placing a malicious DLL file in a location on the system from where the targeted application would load the malicious file before the legitimate component.
If an application fails to find a DLL file in the current directory or system folders, it will try to locate the file inside the system’s PATH environment variable. An attacker with administrative privileges can write their own path to this variable, thus ensuring that their file would get loaded when the targeted software is executed.
In the case of CVE-2020-5316, however, Shimony discovered that Dell SupportAssist attempts to load a DLL from a folder where even a user with non-admin privileges can copy files.
“Therefore, a malicious non-privileged user can write a DLL that would be loaded by Dell SupportAssist, effectively gaining code execution inside software that runs with NT AUTHORITYSystem privileges,” Shimony explained. “This is because you can write a code entry inside a function called DLLMain (in the malicious DLL) that would be called immediately upon loading. This code piece would run in the privilege level of the host process -> NT AUTHORITYSystem.”