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"组对该文件的"完全控制"权限。由于低权限用户对此文件具有控制权,可以删除该文件并创建指向其他文件的硬链接,导致目标文件被授予"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日:联系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日:公告发布,问题公开