Trustwave has reported several issues in Lenovo software in the past. Last week Lenovo published an advisory (https://support.lenovo.com/us/en/product_security/len_4326) for Lenovo Solution Center. Now that Lenovo customers have had some time to patch their systems, we will take a deeper look at the vulnerability patched in version 3.0 of Lenovo Solution Center.
According to the vendor, Lenovo Solution Center (LSC) "allows users to perform diagnostic functions and quickly identify the status of PC system hardware and software health, network connections and the presence of security features such as firewalls or antivirus programs".
The previous version of LSC (2.8) allowed unprivileged local users to open the Device Manager running as LocalSystem. This could be performed via a simple "sc start LSCWinService StartBackend" command followed by an HTTP request to localhost:55555. LSC uses custom HTTP server which in turn processes commands received via HTTP without any authorization checks. Here is a piece of vulnerable pseudocode responsible for launching Device Manager:
Once the Device Manager window is launched, we can run arbitrary code in various ways. One is adding a device driver with a custom action that will load any dynamic library and execute code in it. Since the Device Manager runs as LocalSystem, the code will be executed with highest privileges possible.
Lenovo acknowledged this vulnerability and released a fix (version 3.0) that no longer suffers from this problem. Trustwave SpiderLabs would like to thank the Lenovo team for being responsive and communicative throughout the disclosure process.
Please see our advisory for full details and proof-of-concept code: http://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2016-009/?fid=7895
Here is a short video displaying the attack: