BitDefender修复可致攻击者远程运行命令的漏洞
字数 1242 2025-08-15 21:31:13
BitDefender Safepay 浏览器组件远程代码执行漏洞分析 (CVE-2020-8102)
漏洞概述
BitDefender Total Security 2020 的 Safepay 浏览器组件中存在一个输入验证错误漏洞,允许远程攻击者通过特殊构造的网页在 Safepay Utility 进程中执行任意命令。
受影响版本: Bitdefender Total Security 2020 24.0.20.116 之前的所有版本
漏洞背景
BitDefender 作为安全解决方案,其 Safepay 组件提供安全浏览环境,特别是用于网上银行等敏感操作。该组件实现了以下安全功能:
- 作为中间人(MitM)代理检查HTTPS连接
- 拦截无效或过期的SSL证书并提供自定义警告页面
- 提供虚拟浏览环境隔离银行网站
漏洞技术细节
核心问题
-
URL显示不一致性:当出现无效证书时,浏览器地址栏中的URL保持不变,而实际上显示的是BitDefender的自定义错误页面
-
安全令牌共享:所有Safepay会话使用相同的硬编码安全令牌:
BDNDSS_B67EA559F21B487F861FDA8A44F01C50BDNDCA_BBACF84D61A04F9AA66019A14B035478
-
同源策略绕过:攻击者可以构造恶意页面利用同源策略获取这些令牌
攻击步骤
- 攻击者设置一个本地Web服务器,初始提供有效SSL证书
- 用户访问该服务器时,服务器随后切换为无效证书
- 浏览器显示BitDefender的自定义错误页面,但URL保持不变
- 恶意页面通过AJAX请求下载SSL错误页面(同源策略允许此操作)
- 从错误页面中提取"我理解这些风险"链接的代码和硬编码安全令牌
- 使用这些令牌构造恶意请求,在受害者机器上执行任意命令
漏洞利用PoC
攻击者可以构造如下脚本执行远程代码:
// 使用获取的安全令牌构造请求
var xhr = new XMLHttpRequest();
xhr.open("POST", "bitdefender://safepay/", true);
xhr.setRequestHeader("BDNDSS", "B67EA559F21B487F861FDA8A44F01C50");
xhr.setRequestHeader("BDNDCA", "BBACF84D61A04F9AA66019A14B035478");
// 包含恶意payload的data URI
xhr.send("data:,<command>");
此payload可以执行系统命令,例如:
- 运行
whoami获取当前用户 - 下载并执行远程可执行文件
漏洞影响
- 远程代码执行:攻击者可以在受害者机器上执行任意命令
- 银行会话劫持:可以入侵同一Safepay浏览器会话中的所有隔离银行网站
- 权限提升:在Safepay Utility进程上下文中执行代码
修复方案
BitDefender在版本24.0.20.116中修复了该漏洞,主要改进包括:
- 修改了安全令牌生成机制,不再使用硬编码值
- 加强了输入验证
- 改进了Safepay环境的隔离性
建议:所有用户应立即更新至24.0.20.116或更高版本
安全启示
- 安全产品本身可能成为攻击面,需要严格的安全审计
- 硬编码凭证或令牌是严重的安全隐患
- 浏览器安全机制(如同源策略)可能被绕过,需要额外防护
- 中间人代理实现需要特别注意安全边界
参考
- CVE编号:CVE-2020-8102
- 披露者:Wladimir Palant(AdBlock Plus原始开发者)
- 原始报告:Bleeping Computer