Vendor description
"GlobalProtect enables you to use Palo Alto Networks next-gen firewalls or Prisma Access to secure your mobile workforce."
Source: https://docs.paloaltonetworks.com/globalprotect
Business recommendation
The vendor provides a patched version v6.2.5 which should be installed immediately. Further affected branches will be patched by the vendor in the future, except branch 5.2.x which is EOL. Users are urged to upgrade to the most recent versions.
SEC Consult highly recommends to perform a thorough security review of the product conducted by security professionals to identify and resolve potential further security issues.
Vulnerability overview/description
1) Local Privilege Escalation via MSI installer (CVE-2024-9473)
The configuration of the GlobalProtect MSI installer file was found to produce a visible conhost.exe window running as the SYSTEM user when using the repair function of msiexec.exe. This allows a local, low-privileged attacker to use a chain of actions, to open a fully functional cmd.exe with the privileges of the SYSTEM user.
Proof of concept
1) Local Privilege Escalation via MSI installer (CVE-2024-9473)
For the exploit to work, GlobalProtect has to be installed via the MSI file. Afterwards, any low-privileged user can start the repair of GlobalProtect by double-clicking the installer and trigger the vulnerable actions without a UAC popup. The installer, if deleted from it's original location, can be found in C:\Windows\Installer with a randomized name.
During the repair process, the subprocess PanVCrediChecker.exe gets called with SYSTEM privileges and performs a read action on the file "C:\Program Files\Palo Alto Networks\GlobalProtect\libeay32.dll".
This can be used by an attacker by simply setting an oplock on the file. As soon as it gets read, the process is blocked until the lock is released. To do that, one can use the 'SetOpLock.exe' tool from "https://github.com/googleprojectzero/symboliclink-testing-tools" with the following parameters, see figure 1:
SetOpLock.exe "C:\Program Files\Palo Alto Networks\GlobalProtect\libeay32.dll" x