安全研究人员发现,NordVPN和ProtonVPN客户端在Windows机器上运行具有管理员权限的任意代码。两个客户端都使用OpenVPN开源软件从一个点到另一个点建立安全隧道。该服务需要以管理员权限运行,因此它运行的任何代码都享有这些权限。
漏洞产生原因
Cisco Talos发现OpenVPN的配置文件可以更改为包含任意代码然后可以传递给服务并在Windows下使用系统权限执行。
该错误类似于 VerSprite安全咨询公司的Fabius Watson在4月份披露的一个错误,他表示OpenVPN服务将接受并运行包含“插件”或“脚本安全”等参数的配置文件。
NordVPN和ProtonVPN都通过检查是否存在两个危险参数以及“up”和“down”来解决这个问题,这些参数都是通过OpenVPN执行代码或命令的方法。
通过查看配置文件解析器的OpenVPN源代码,Rascagnares注意到这些控件不足,并且可以通过将参数放在引号之间来实现相同的效果。研究人员通过在配置文件中添加以下文本来显示
“script-security” 2
“up” C:\\WINDOWS\\system32\\notepad.exe
厂商已对漏洞发布更新版本
ProtonVPN和NordVPN在Windows上推出了Notepad应用程序。
这两个安全漏洞目前被跟踪为ProtonVPN的CVE-2018-3952和NordVPN的CVE-2018-4010,严重等级为8.8,最高为10。
研究人员在7月5日向两家VPN供应商披露了这些故障,NordVPN于8月8日发布了补丁,而ProtonVPN在9月3日发布了修补程序。
这一次,两家供应商选择了不同的纠正方法:
“对于ProtonVPN,他们将OpenVPN配置文件放在安装目录中,标准用户无法对其进行修改。因此,我们无法在其中添加恶意字符串。对于NordVPN,编辑决定使用XML模型生成OpenVPN配置文件。标准用户无法编辑模板“
受影响版本
受权限升级错误影响的客户端版本是ProtonVPN 1.5.1和NordVPN 6.14.28.0。
NordVPN用户会自动更新到应用程序的最新版本,而使用PrototonVPN的用户需要手动启动该过程。