Virtual private network (VPN) service providers ProtonVPN and NordVPN have made another attempt to patch a potentially serious privilege escalation vulnerability that they first tried to address a few months ago.
Fabius Watson of VerSprite Security discovered in March that the Windows versions of the ProtonVPN and NordVPN applications were affected by a vulnerability that could have been abused to execute arbitrary code with elevated privileges. The vendors released patches in April.
However, Cisco researchers discovered that the initial patch could be easily bypassed, triggering a new round of updates from ProtonVPN and NordVPN.
The flaw, initially tracked as CVE-2018-10169, allowed an attacker with low privileges to execute arbitrary code with elevated permissions by making changes to the OpenVPN configuration file. Specifically, an attacker could have added a parameter such as “plugin” or “script-security” to the configuration file and the file specified through these parameters would get executed by OpenVPN with admin privileges.
Both ProtonVPN and NordVPN attempted to resolve the issue by ensuring that the “plugin,” “script-security,” “up” or “down” strings could not be added to the configuration file – all of these parameters allow code or command execution through the VPN program.
However, Cisco researchers discovered that simply adding these parameters in quotation marks in the configuration file bypassed the patch. The company has published a simple proof-of-concept (PoC) exploit that shows how the vulnerability can be exploited to execute Notepad in Windows.
ProtonVPN and NordVPN have now released new fixes, which should be much more effective. They now prevent users with limited privileges from making any kinds of modifications to the configuration files.
The vulnerability is tracked as CVE-2018-3952 (NordVPN) and CVE-2018-4010 (ProtonVPN), and it has been classified as “high severity” for both applications. NordVPN released a patch on August 8, but ProtonVPN made the second fix available only in early September.
“The new patches developed by the editors are different. For ProtonVPN, they put the OpenVPN configuration file in the installation directory, and a standard user cannot modify it. Thus, we cannot add the malicious string in it. For NordVPN, the editor decided to use an XML model to generate an OpenVPN configuration file. A standard user cannot edit the template,” Cisco said in a blog post.
UPDATE. ProtonVPN has provided SecurityWeek the following statement:
“Later versions of ProtonVPN have resolved this issue and an update has been rolled out to all users. It is important to note that an attacker needs to already have access to the target’s computer for this exploit to work, and it only impacts Windows users. The fix we have implemented should eliminate all bugs of this nature, and we continue to work with independent security researchers around the globe to make ProtonVPN more secure through our bug bounty program.”
NordVPN has published a blog post with clarifications and provided SecurityWeek the following statement:
“The vulnerability had already been fixed by the time Cisco publicly disclosed the CVE. At the beginning of August, an automatic update was pushed to all our customers, which means the majority of users had their apps updated long before the public disclosure. These actions virtually eliminated any risk of the vulnerability being exploited in real life conditions.
It is also worth mentioning, that in order to exploit the flaw, an attacker had to have physical access to a victim’s PC. Such a situation alone leads to a variety of severe security threats beyond any individual apps.”
Related: Kaspersky VPN Bug Leaked DNS Lookups