Symantec Endpoint Protection is the latest antivirus product found to unsafely load DLLs into a process that runs with SYSTEM privileges.
The software is impacted by a vulnerability that could allow an attacker that has administrative privileges to bypass self-defense mechanisms and load an unsigned DLL file, SafeBreach security researchers explain in a new blog post.
Over the past several weeks, SafeBreach has disclosed similar issues in security products from Avast, AVG, Avira, McAfee, Forcepoint, Trend Micro, Bitdefender and Check Point.
The issue, the researchers say, is that Symantec Endpoint Protection, a signed process running as NT AUTHORITYSYSTEM — meaning that it has the highest privileges on a machine — is attempting to load a DLL that doesn’t reside at the expected path.
Specifically, the software looks for the file at C:WindowsSysWOW64wbemDSPARSE.dll, but the DLL is actually located in the SysWow64 folder directly.
The same as other antivirus programs, Symantec Endpoint Protection uses a mini-filter filesystem driver to protect its folders from intrusion, preventing even users with admin privileges from altering them.
“That means that even if we are running as an Administrator and we will want to implant a DLL which doesn’t exist in order to load it into Symantec’s processes, we won’t be able to do that,” SafeBreach explains.
The aforementioned vulnerability, however, provided the security researchers with the possibility to create an unsigned library out of the original dsparse.dll, implant it in the SysWow64Wbem folder, and have it loaded by Symantec Endpoint Protection at system reboot.
“We were able to load an arbitrary Proxy DLL (which loaded another arbitrary DLL) and execute our code within a service’s process which is signed by Symantec Corporation as NT AUTHORITYSYSTEM, resulting in bypassing the self-defense mechanism of the program,” SafeBreach explains.
The two root causes of this vulnerability are the fact that the antivirus does not perform a digital signature check against the loaded binary, and that it attempts to load dsparse.dll from the working directory.
While administrative privileges are required to exploit the vulnerability, a successful attack could result in a malicious payload being loaded and executed within the context of a Symantec signed process, as NT AUTHORITYSYSTEM.
“This ability might be abused by an attacker for different purposes such as execution and evasion, for example: Application Whitelisting Bypass. The Antivirus might not detect the attacker’s binary, because it tries to load it without any verification against it,” SafeBreach says.
Tracked as CVE-2019-12758, the security bug was found to affect all versions of Symantec Endpoint Protection before 14.2 RU2. Version 14.2 RU2 also patches several other vulnerabilities.
Related: Vulnerability in McAfee Antivirus Products Allows DLL Hijacking
Related: Avast, Avira Products Vulnerable to DLL Hijacking
Related: Researchers Claim They Bypassed Cylance’s AI-Based Antivirus