近期,网络安全研究机构 Cymulate 披露了一个现已修复的 AWS EC2 Simple Systems Manager (SSM) Agent 中的安全漏洞细节。该漏洞若被成功利用,可能允许攻击者实现权限提升和代码执行,对云主机的安全构成威胁。
SSM Agent 简介:
首先,简单介绍一下 Amazon SSM Agent。它是 AWS 的一个核心组件,允许管理员远程管理、配置 EC2 实例以及本地服务器,并执行命令。SSM Agent 通过处理在 SSM 文档 (SSM Documents) 中定义的命令和任务来工作。这些文档可以包含一个或多个插件 (plugins),每个插件负责执行特定任务,如运行 Shell 脚本、自动化部署或配置活动等。
!! 重要前提条件 !!
请注意:利用此漏洞通常需要攻击者已具备一定的 AWS IAM 权限,特别是拥有能够创建或修改 SSM 文档 (e.g., ssm:CreateDocument
, ssm:UpdateDocument
, ssm:StartAutomationExecution
等相关权限) 的能力。这并非一个无需任何先决条件的远程代码执行漏洞,而是针对已获得特定访问权限的攻击者的权限提升途径。
漏洞技术细节:路径遍历导致权限提升
- 核心问题
此次由网络安全研究机构 Cymulate 发现并负责任披露的漏洞是一个典型的路径遍历 (Path Traversal) 漏洞,被评定为高危 (High Severity)。 - 机制分析
问题的根源在于 pluginutil.go
源文件中的ValidatePluginId
函数,该函数未能正确清理和验证传入的插件 ID,特别是未能拒绝包含路径遍历序列 (../
) 的恶意输入。SSM Agent 在执行任务时会使用这些插件 ID 来构建文件和目录路径。 - 攻击向量
拥有相应权限的攻击者可以在创建或修改 SSM 文档时,提供一个特制构造的插件 ID,例如 ../../../../../../malicious_directory
。 - 安全影响
由于输入验证的缺失,恶意构造的插件 ID 会导致 Agent 在预期之外的文件系统位置创建目录或写入文件。攻击者可利用此缺陷: -
在文件系统的敏感区域写入恶意文件 (如 webshell、后门程序、修改配置文件等)。 - 以 root 或 SYSTEM 权限执行任意脚本
。这通常是因为 SSM Agent 服务本身设计为以高权限(如 Linux 上的 root,Windows 上的 SYSTEM)运行,或者其内置的某些插件(例如 aws:runShellScript
)在执行用户提供的脚本时继承了这些高权限。路径遍历使得攻击者能够控制脚本内容或执行路径,从而滥用这些权限。 -
最终实现权限提升,并执行进一步的恶意活动。
披露与修复:
Cymulate 于 2025 年 2 月 12 日向 AWS 进行了负责任的漏洞披露。AWS 迅速响应,并在 2025 年 3 月 5 日发布的 Amazon SSM Agent 3.3.1957.0 版本中修复了此漏洞。
根据版本说明,修复措施包括添加并使用 BuildSafePath
方法。该方法旨在安全地构建文件路径,能够有效识别、过滤和阻止路径中的遍历序列 (../
),从而防止在编排目录中发生路径遍历攻击。
建议措施:
强烈建议所有使用 AWS EC2 SSM Agent 的用户检查当前运行的 Agent 版本,并尽快升级到 3.3.1957.0 或更高版本,以消除此安全风险。
请确保您的云环境安全,及时应用安全更新!
原文始发于微信公众号(技术修道场):AWS EC2 SSM Agent 路径遍历漏洞可致权限提升 (附修复方案)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论