CVE-2025-59288:Playwright下载安装浏览器时未验证SSL证书真实性
漏洞详情
包管理器: npm
受影响包: playwright
受影响版本: < 1.55.1
修复版本: 1.55.1
漏洞描述
摘要
安装脚本中使用curl的-k(或–insecure)标志,允许攻击者通过中间人(MitM)攻击传递任意可执行文件。由于下载的文件作为特权应用程序安装,这可能导致系统完全被控制。
详细说明
在microsoft/playwright存储库的bee11cbc28f24bd18e726163d0b9b1571b4f26a8提交中,以下脚本使用curl -k获取并安装可执行包,而未验证SSL证书的真实性:
- packages/playwright-core/bin/reinstall_chrome_beta_mac.sh
- packages/playwright-core/bin/reinstall_chrome_stable_mac.sh
- packages/playwright-core/bin/reinstall_msedge_dev_mac.sh
- packages/playwright-core/bin/reinstall_msedge_beta_mac.sh
- packages/playwright-core/bin/reinstall_msedge_stable_mac.sh
在每个案例中,shell脚本使用curl -k下载浏览器安装包并立即安装:
|
|
禁用SSL验证(-k)意味着下载可能被拦截并替换为恶意内容。
概念验证
高级利用场景:
- 攻击者在受害者运行这些脚本的网络中执行MitM攻击
- 攻击者拦截HTTPS请求并提供恶意包(例如,被篡改的浏览器安装程序)
- 由于使用了curl -k,脚本在没有任何证书验证的情况下下载并安装攻击者的有效载荷
- 攻击者的代码以系统权限执行,导致完全被控制
无需特殊配置:只需在任何不受信任或敌对网络上运行这些脚本就足够了。
影响
由于不正确的SSL证书验证(CWE-295:不当证书验证),这是一个严重的远程代码执行(RCE)漏洞。任何运行这些脚本的用户或自动化系统都面临以root/admin权限执行任意代码、系统被控制、数据被盗或持久恶意软件安装的风险。风险尤其严重,因为浏览器包以提升的权限安装,且这些脚本可能在CI/CD或开发环境中使用。
修复
- microsoft/playwright@72c62d8
- microsoft/playwright#37532
- https://github.com/microsoft/playwright/releases/tag/v1.56.0
致谢
- 该漏洞由Socket的工具发现
- 该漏洞由@evilpacket确认
- 该漏洞由Socket的@JLLeitschuh报告
披露时间线
- 2025年9月10日 - 通过https://github.com/microsoft/playwright/security/advisories/GHSA-gx27-2j22-qcx8向微软私下披露
- 2025年9月11日 - 通过MSRC研究员门户向微软报告 - https://msrc.microsoft.com/report/vulnerability/VULN-162854
- 2025年9月11日 - 微软将报告关闭为"Complete - N/A"
- 2025年9月18日 - 在LinkedIn帖子后跟进
参考链接
- https://nvd.nist.gov/vuln/detail/CVE-2025-59288
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-59288
- GHSA-qxm8-4v54-964r
- microsoft/playwright#37532
- microsoft/playwright@72c62d8
- https://github.com/microsoft/playwright/releases/tag/v1.55.1
- https://github.com/microsoft/playwright/releases/tag/v1.56.0
安全评分
严重程度: 高
CVSS总体评分: 8.7/10
CVSS v4基础指标
可利用性指标:
- 攻击向量: 网络
- 攻击复杂度: 高
- 攻击要求: 存在
- 所需权限: 高
- 用户交互: 主动
脆弱系统影响指标:
- 机密性: 高
- 完整性: 高
- 可用性: 高
后续系统影响指标:
- 机密性: 高
- 完整性: 高
- 可用性: 高
弱点
弱点: CWE-347 - 加密签名验证不当
产品未验证或错误验证数据的加密签名。