A security researcher demonstrated how to bypass a fix released by Valve for a recently discovered Steam vulnerability re-enabling the attack.

A few days ago, the security experts Matt Nelson and Vasily Kravets separately disclosed a privilege escalation vulnerability in the Stream client for Windows that can be exploited by an attacker with limited permissions to run code administrative privileges.

The issue could be exploited by vxers to develop malware that is able to perform multiple malicious activities.

The two experts decided to disclose the flaw because Valve did not acknowledge it. Not only the company refused to cover the issue under its bug bounty program but asked one of them to not disclose the flaw.

One of the experts, the security researcher Vasily Kravets (aka Felix) explained that the zero-day vulnerability allows any user to run arbitrary code with LOCALSYSTEM privileges.

A bypass for a recent Steam vulnerability that could allow malware or a local attacker to gain admin privileges has been disclosed on Twitter. This new method allows an attacker to bypass the fix created by Steam and exploit the vulnerability again.

Anyway, the flaw, tracked as the CVE-2019-14743, was addressed by Valve, but some experts argued that the fix is incomplete because the USERS group still had full privileges to the Steam installation folder and potentially still allow privilege escalation.

The researcher Xiaoyin Liu disclosed a bypass to the fix implemented by Valve that could be exploited by attackers to re-enable to issue.

He discovered that replacing the C:\Program Files (x86)\Steam\bin\SteamService.exe and C:\Program Files (x86)\Steam\bin\SteamService.dll files with older vulnerable versions and restarting the “Steam Client Service” would still have been exploited.

A low-level user could replace files located under the C:\Program Files (x86) folder because Steam gives the “USERS” group full permission to this directory.

“Normally any files under “Program Files” and “Program Files (x86)” are not writable by non-admin users. But Steam explicitly sets DACL to allow all users to have full access to C:\Program Files (x86)\Steam. So I place a malicious DLL at C:\Program Files (x86)\Steam\bin\SteamService.dll, and hope that Steam Service copies my DLL to replace the genuine one. This doesn’t work because Steam Service checks file signature before the copy is made.” reads a post published by the expert.

“Since it checks signature , the next attempt is to replace it with an old copy of SteamService.dll. If it overwrites the current one, we can exploit the original symlink attacks again. The first part works: the old copy indeed overwrites the new one under Common Files\Steam. But if I try to exploit the symlink attack, it doesn’t work.”

It turns out that only replacing SteamService.dll is not enough.”

An attacker could include old versions of the above DLLs in malware that one executed will replace the

This means that an attacker could bundle the old versions of these two files in their malware, and once executed will replace the original files and re-enable the exploit.

Liu publicly disclosed his findings because Valve’s bug bounty program doesn’t cover this kind of flaw.

Pierluigi Paganini