Beckhoff: Privilege Escalation through TwinCat System Tray (TcSysUI.exe)

The default installation path and its permissions for the TwinCAT runtime allow a local user to replace or modify executables other users of the same system might execute.

VDE-2020-037 (2020-11-19 14:41 UTC+0100)

CVE Identifier

CVE-2020-12510

Affected Vendors

Beckhoff

Affected Products

All installations of TwinCAT XAR 3.1 with default installation path.

Summary

The default installation path and its permissions for the TwinCAT runtime allow a local user to replace or modify executables other users of the same system might execute. The issue does not apply for installations underneath C:\Program Files.

Impact

The default installation path of the TwinCAT software is underneath C:\TwinCAT. If the directory does not exist it and further subdirectories are created with permissions which allow every local user to modify the content. The default installation registers TcSysUI.exe for automatic execution upon log in of a user. If a less privileged user has a local account he or she can replace TcSysUI.exe. It will be executed automatically by another user during login. This is also true for users with administrative access. Consequently, a less privileged user can trick a higher privileged user into executing code he or she modified this way. By default Beckhoff’s IPCs are shipped with TwinCAT software installed this way and with just a single local user configured. Thus the vulnerability exists if further less privileged users have been added.

Solution

Please consider to choose “C:\Program Files\TwinCAT” during installation of TwinCAT 3.1. If you have installed it already then please uninstall and re-install it with the changed path. Please use the custom installation for this. That will automatically protect the binaries such that they can only be modified by an administrator.

Please mind that already installed projects underneath C:\TwinCAT need to be moved. It is recommended to perform a backup of the complete device before such action. For security reasons, please remove the former content of C:\TwinCAT at the end of this sequence. This will also prevent confusion.

Reported by

Ayushman Dutta reported the issue to CERT@VDE