A Zero-Day in Steam client for Windows affects over 100 Million users

Pierluigi Paganini August 09, 2019

Two researchers publicly disclosed a zero-day vulnerability that affects the popular Steam game client for Windows, 0ver 100 million users at risk.

Two security experts 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.

The vulnerability affects the Steam Client Service, it could be started or stopped by unprivileged users. This could be very dangerous when the service automatically sets permissions on a set of registry keys. If a malware uses one of these keys it can start or stop the service or pass arguments to services.

“Steam’s service sets security descriptor for our target-key. Review SDDL for the key (non-interesting data is omitted):

(A;ID;KA;;;BU)(A;OICIIOID;GA;;;BU)

In other words, it means full (read and write) access to the key for all users. This is the security descriptor the service has set to the key.” wrote the expert.

“So, now we have a primitive to take control on almost every key in the registry, and it is easy to convert it into a complete EoP (Escalation of Privileges).”

The expert demonstrated that using the HKLM\SYSTEM\ControlSet001\Services\msiserver associated with the service “Windows Installer,”which can be started by any user, same as Steam’s service, it is possible to run a program as NT AUTHORITY\SYSTEM.

“I created test key HKLM\Software\Wow6432Node\Valve\Steam\Apps\test and restarted the service (Procmon’s log is above) and checked registry key permissions.” continues the expert. “Here I found that HKLM\SOFTWARE\Wow6432Node\Valve\Steam has explicit “Full control” for “Users” group, and these permissions inherit for all subkeys and their subkeys. I assumed that RegSetKeySecurity sets same rights, and something interesting would happen if there were a symlink. I created a link from HKLM\SOFTWARE\Wow6432Node\Valve\Steam\Apps\test to HKLM\SOFTWARE\test2 and restarted the service.”

The researcher successfully configured a symlink from one of the subkeys he has chosen to another key for which he did not have enough permissions and discovered that was possible to modify that key as well.

Summarizing, it is possible to change any Registry key by creating a symlink to it from a subkey under HKLM\Software\Wow6432Node\Valve\Steam\Apps, this means that it is possible to launch code with elevate privileges having access to a service running with SYSTEM privileges.

Another researcher, Matt Nelson (aka enigma0x3) disclosed a proof-of-concept (PoC) code for the vulnerability and published it on GitHub.

The expert launches in the background a Windows command prompt with Administrative privileges, then its code could change any Registry key by creating a symlink to the HKLM:\SYSTEM\CurrentControlSet\Services\Steam Client Service. Using this trick he can change the executable that is launched every time the service is restarted.

[adrotate banner=”9″] [adrotate banner=”12″]

Pierluigi Paganini

(SecurityAffairs – Steam, hacking)

[adrotate banner=”5″]

[adrotate banner=”13″]



you might also like

leave a comment