Missing XPC Client & NSXPC endpoint validation leads to privilege escalation in Vienna Assistant (MacOS) - Vienna Symphonic Library
The VSL privileged helper does utilize NSXPC for IPC. The implementation of the "shouldAcceptNewConnection" function, which is used by the NSXPC framework to validate if a client should be allowed to connect to the XPC listener, does not validate clients at all. This means that any process can connect to this service using the configured protocol. A malicious process is able to call all the functions defined in the corresponding HelperToolProtocol. No validation is performed in the functions "writeReceiptFile" and “runUninstaller” of the HelperToolProtocol. This allows an attacker to write files to any location with any data as well as execute any file with any arguments. Any process can call these functions because of the missing XPC client validation described before. The abuse of the missing endpoint validation leads to privilege escalation.
Problem Types
| Type | CWE ID | Description |
|---|
| CWE | CWE-306 | CWE-306 Missing authentication for critical function |
Type: CWE
Description: CWE-306 Missing authentication for critical function
Metrics
| Version | Base score | Base severity | Vector |
|---|
Impacts
| CAPEC ID | Description |
|---|
| CAPEC-1 | CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs |
Description: CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs