AnyDesk Linux 曝预认证堆溢出:AnyPwn 利用代码公开可获 root

安全研究团队 V12 于 2026 年 10 月 8 日在 GitHub 公开了针对远程桌面软件 AnyDesk Linux 的完整利用代码,代号 AnyPwn。该漏洞位于 AnyDesk 会话协议中,属预认证阶段的堆缓冲区溢出,攻击者无需受害者同意任何远程会话请求,即可在受影响主机上以 root 权限执行任意命令。AnyDesk 已在 8.0.3 版本中修复,但厂商当时仅在更新日志中把它描述为一个「可能导致崩溃的缺陷」,既未分配 CVE 编号,也未发布正式安全公告。

事件概述

漏洞由 V12 安全团队的 Rick de Jager 借助团队自研的 AI 驱动代码审查平台发现,V12 于 2026 年 6 月 22 日在社交平台公开披露,定性为预认证、零点击远程代码执行。AnyDesk 次日确认收到报告,并在 6 月推送 8.0.3 版本。由于修复说明过于笼统,许多机构把这次更新当作普通崩溃修复而未及时部署。10 月 8 日利用代码公开后,仍在运行旧版 Linux 客户端的系统重新进入公众视野。受影响版本为 AnyDesk Linux 8.0.2,修复版本为 8.0.3,当前最新为 8.1.0。

技术细节

漏洞源于会话协议对 mode-5 流数据包的处理。处理器在计算缓冲区大小时,会把声明的载荷长度加上 16 字节的对象头,但整个运算使用 32 位算术且未做溢出检查。攻击者只需声明载荷长度为 0xFFFFFFF0,加上 0x10 后 32 位结果回绕为 0,内存分配器于是只保留极小的缓冲区,而对象本身仍记录着超大的原始长度。这种不匹配会引发越界写入:攻击者发送一个很小的网络包,谎称后续将传输巨量数据,存在漏洞的服务就会把攻击者控制的数据写到分配区域之外,破坏相邻堆对象。公开的利用代码通过精心布置堆布局并使用 ROP 链,最终以 root 权限执行任意命令。利用需经 TCP 7070 端口的直接连接,且带有概率性——堆布局若不满足条件,服务会直接崩溃而非执行代码。

影响评估

该漏洞的严重性来自两点:预认证与 root。Linux 上 AnyDesk 服务默认以 root 权限运行,攻击者一旦触发溢出,无需受害者接受桌面共享请求,即可在主机上建立稳固据点,进而长期驻留或横向移动。V12 指出同样的易受攻击代码路径也可经 AnyDesk 中继服务器触达,虽已用 Frida 插桩验证可达性,但未演示完整的中继利用链;AnyDesk 则回应称该问题仅限不经中继的 Linux 直接连接,Windows 与 macOS 不受影响。需要注意的是,由于厂商未分配 CVE、也未把修复标为安全更新,企业补丁管理流程很可能把它当作可推迟的普通更新,形成看不见的暴露窗口。截至 10 月 9 日仍无 CVE 编号,也未见在野利用报告。

修复建议

  • 把 AnyDesk Linux 升级到 8.0.3 及以上,建议直接使用 8.1.0。
  • 暂时无法升级时,限制或关闭 TCP 7070 端口的对外访问,仅允许已知可信 IP 连接。
  • 清点资产中实际部署的 AnyDesk Linux 版本:官方下载页已不再列出 8.0.2,应以主机实测版本为准,而非依赖公开列表。
  • 对远程访问类工具建立更严格的更新策略——涉及远程控制的软件,即使更新说明只提到「崩溃修复」,也应视为潜在安全更新优先部署。

参考来源