EA Origin客户端本地权限提升漏洞深度分析

本文详细分析了CVE-2019-19248漏洞的成因和利用过程,涉及Origin客户端服务的安全缺陷,通过硬链接技术实现DACL覆盖,最终获得SYSTEM权限的完整技术细节。

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

版本: Origin Client 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 Client Service"。低权限用户可以停止和启动此服务。当Origin客户端服务启动时,它会检查"C:\ProgramData\Origin\local.xml"文件是否存在。如果该文件不存在,服务会创建该文件并授予"Everyone"组对该文件的"完全控制"权限。

由于低权限用户对此文件拥有权限,可以在"C:\ProgramData\Origin\local.xml"上创建硬链接并将其指向另一个文件,导致目标文件被授予"Everyone"组"完全控制"权限。低权限用户可利用此漏洞覆盖特权文件的DACL,最终将权限提升至"NT AUTHORITY\SYSTEM"。

漏洞详细说明

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

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

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

创建硬链接后,重启"Origin Client Service"服务将导致其尝试在"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日:联系EA告知90天期限已过,请求更新和是否需要额外时间
  • 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日:回复EA确认收到测试版,同意咨询草案
  • 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通知按计划于10日发布Origin更新和公告
  • 2019年12月10日:公告发布,问题公开
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计