Cisco AnyConnect VPN Client Arbitrary Program Execution Vulnerabilit
27 Jul. 2011
Summary
A design error within Cisco Systems Inc's AnyConnect VPN client allows attackers to execute arbitrary code with the privileges of a user running Internet Explorer.
Vulnerable Systems:
* Cisco AnyConnect VPN client versions prior to 2.3.185 for Windows
* Cisco AnyConnect VPN client versions prior to 2.5.3041 for Windows
* Cisco AnyConnect VPN client versions prior to 3.0.629 for Linux
* Cisco AnyConnect VPN client versions prior to 3.0.629 for Apple Mac OS X
The vulnerability exists within the ActiveX control with the following identifiers:
CLSID: 55963676-2F5E-4BAF-AC28-CF26AA587566
ProgId: Cisco.AnyConnect.VPNWeb.1
File: %WINDIR%\system32\vpnweb.ocx
This ActiveX control is not marked as safe for initialization or scripting within the registry, but it does implement IObjectSafety. When queried, this control's IObjectSafety interface reports that it is safe for both scripting and initialization.
This ActiveX control is used to install the VPN client. Once it is instantiated, it will attempt to download two files from the site supported in the "url" property. As such, an attacker can craft a page such that the control will download an executable of their choosing.
One of the files will be executed upon the successful completion of the download. This allows an attacker to execute an arbitrary executable on the user's system.
Exploitation allows attackers to execute arbitrary code in the context of the currently logged-on user. To exploit this vulnerability, a targeted user must load a malicious Web page created by an attacker. An attacker typically accomplishes this via social engineering or injecting content into compromised, trusted sites.
Workaround:
Setting the kill-bit for this control will prevent it from being loaded within Internet Explorer. However, doing so will prevent legitimate use of the control.