Information
This policy setting controls whether applications that request to run with a User Interface Accessibility (UIAccess) integrity level must reside in a secure location in the file system. Secure locations are limited to the following:
...\Program Files\, including subfolders
...\Windows\System32\
...\Program Files (x86)\, including subfolders (for 64-bit versions of Windows)
Note: Windows enforces a public key infrastructure (PKI) signature check on any interactive application that requests to run with a UIAccess integrity level regardless of the state of this security setting.
The recommended state for this setting is: Enabled.
Rationale:
UIAccess Integrity allows an application to bypass User Interface Privilege Isolation (UIPI) restrictions when an application is elevated in privilege from a standard user to an administrator. This is required to support accessibility features such as screen readers that are transmitting user interfaces to alternative forms. A process that is started with UIAccess rights has the following abilities:
To set the foreground window.
To drive any application window using SendInput function.
To use read input for all integrity levels using low-level hooks, raw input, GetKeyState, GetAsyncKeyState, and GetKeyboardInput.
To set journal hooks.
To uses AttachThreadInput to attach a thread to a higher integrity input queue.
Impact:
None - this is the default behavior.
Solution
To establish the recommended configuration via GP, set the following UI path to Enabled:
Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\Security Options\User Account Control: Only elevate UIAccess applications that are installed in secure locations
Default Value:
Enabled. (If an application resides in a secure location in the file system, it runs only with UIAccess integrity.)