EA Origin客户端本地权限提升漏洞深度分析(CVE-2019-19248)

本文详细分析了EA Origin客户端存在的本地权限提升漏洞(CVE-2019-19248),包括漏洞原理、利用方式、修复方案以及完整的时间线披露过程,涉及DACL覆盖和硬链接攻击技术。

CVE-2019-19248: EA Origin客户端本地权限提升漏洞

版本: Origin客户端版本10.5.35.22222-0 (https://www.origin.com/usa/en-us/store/download)
测试操作系统: Windows 10 1709 (x64)
安全公告: https://www.ea.com/security/news/easec-2019-001-elevation-of-privilege-vulnerability-in-origin-client
EA博客: https://www.ea.com/security/news/origin-security-update-in-collaboration-with-external-security-researchers

漏洞概述

漏洞类型: Origin客户端服务DACL覆盖权限提升
简要描述: 当安装Origin时,它会附带多个服务,其中包括"Origin客户端服务"。低权限用户可以停止和启动此服务。当Origin客户端服务启动时,它会检查"C:\ProgramData\Origin\local.xml"文件是否存在。如果该文件不存在,服务会创建该文件并授予"Everyone"组对该文件的"完全控制"权限。

由于低权限用户对此文件具有控制权,攻击者可以在"C:\ProgramData\Origin\local.xml"上创建硬链接并将其指向另一个文件,导致目标文件被授予"Everyone"组的"完全控制"权限。

低权限用户可以利用此漏洞覆盖特权文件的DACL,最终实现提升至"NT AUTHORITY\SYSTEM"权限。

漏洞详细说明

当Origin安装时,它会安装多个服务,其中一个就是"Origin客户端服务"。低权限用户可以停止和启动此服务:

当重启Origin客户端服务时,它会检查"C:\ProgramData\Origin\local.xml"是否存在。如果不存在,服务将创建该文件并设置文件的安全描述符,授予Everyone组对该文件的GENERIC_ALL权限:

由于低权限用户控制该文件,可以删除它并用指向特权文件的硬链接替换。在本例中,我们创建指向"C:\Program Files (x86)\Origin\OriginWebHelperService.exe"的硬链接(使用James Forshaw的符号链接测试工具):

创建硬链接后,重启"Origin客户端服务"会导致服务尝试设置"C:\ProgramData\Origin\local.xml"的DACL,授予"AuthenticatedUsers"组"完全控制"权限。由于存在硬链接,操作将跟随链接并最终设置"C:\Program Files (x86)\Origin\OriginWebHelperService.exe"的DACL:

覆盖"C:\Program Files (x86)\Origin\OriginWebHelperService.exe"的DACL后,提升权限只需停止Origin Web Helper服务,替换"C:\Program Files (x86)\Origin\OriginWebHelperService.exe",然后重新启动服务:

由于"Payload.exe"不是服务可执行文件,服务启动将失败,但服务会启动它,cmd.exe将以"NT AUTHORITY\SYSTEM"权限运行,从而实现权限提升。

修复情况

该漏洞已在版本10.5.56.33908中修复。Origin团队重写了Origin客户端,包含"受限"模式,该模式对所有Origin文件设置限制性ACL。

披露时间线

  • 2019年3月13日: 向EA安全团队发送漏洞报告
  • 2019年3月14日: EA确认漏洞并分配案例编号
  • 2019年3月28日: 跟进EA确认是否需要其他信息
  • 2019年4月4日: EA将报告分类为高严重性问题,通知正在修复并发现其他变体
  • 2019年5月2日: 通知EA接近60天窗口期
  • 2019年5月23日: EA回应仍在修复,修复根本原因时遇到问题
  • 2019年6月17日: 通知EA90天期限已过,请求更新
  • 2019年6月25日: EA告知修复实施仍存在问题,需要时间开发解决方案
  • 2019年6月25日: 回应EA的电话会议请求
  • 2019年7月8日: 与EA安全和工程团队通话,同意定期30天延期
  • 2019年8月12日: 向EA发送问题的其他变体
  • 2019年8月13日: EA告知新Origin客户端的Alpha初步版本,预计9月底-10月初修复
  • 2019年9月6日: 联系EA获取修复时间估计
  • 2019年9月12日: EA回应下周提供测试版本,正在处理Mac客户端
  • 2019年9月25日: EA提供测试版本链接和修复设计决策说明
  • 2019年9月26日: 确认收到测试版本,同意公告草案
  • 2019年9月26日: 向EA发送测试版本反馈,修复似乎足够
  • 2019年10月28日: 联系EA获取发布时间
  • 2019年10月28日: EA回应已向Origin团队请求更新,正在完成Mac重写
  • 2019年11月13日: 联系EA获取状态更新
  • 2019年11月13日: EA回复公开测试频道发布日期,提供新的Windows版本
  • 2019年11月14日: 回复EA测试版本在受限模式下表现良好
  • 2019年12月9日: EA告知计划12月10日向公众发布Origin更新和公告
  • 2019年12月10日: 公告发布,问题公开
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计