安全研究人员发布了一个针对AnyDesk Linux中预认证远程代码执行漏洞的完整有效利用代码,该漏洞允许攻击者在任何人批准连接之前获得根权限。
AnyDesk在6月发布的8.0.3版本中修复了该漏洞,但其更新日志仅将修复描述为“修复了可能导致崩溃的错误”,没有分配CVE,也没有发布安全公告。
该利用代码称为AnyPwn,针对AnyDesk的会话协议中的堆缓冲区溢出,这是一个远程桌面工具。代码于10月8日在GitHub上发布。
管理员应将AnyDesk Linux更新至至少8.0.3版本。最新版本为8.1.0。
利用代码展示的内容
发布的利用代码仅在7070端口的直接TCP连接上有效。
该利用是概率性的:堆布局必须将目标对象放置在溢出缓冲区的相邻位置;否则,服务会崩溃,而不是执行攻击者的命令。发布的代码中的偏移量针对的是特定版本的AnyDesk Linux,8.0.2;其他版本需要不同的值。
研究人员表示,同样的易受攻击的代码路径也可以通过AnyDesk的中继服务器访问,当直接连接不可用时,软件会使用这些服务器。他们通过Frida工具验证了这一点,但没有展示通过中继的完整利用链。
AnyDesk在6月表示,该漏洞“仅限于Linux上的直接连接(不通过我们的中继进行的连接)。Windows和macOS不受影响。”
该利用代码针对AnyDesk Linux 8.0.2。研究人员暗示,早期版本如8.0.1可能共享易受攻击的代码路径,但尚未确认对这些版本的利用。
研究人员在6月22日宣布了该漏洞。AnyDesk在第二天确认了该漏洞,并发布了修复的8.0.3版本。
截至10月9日,该漏洞尚未分配CVE。AnyDesk尚未发布正式的安全公告。
AnyDesk的下载页面不再列出8.0.2版本,尽管它仍出现在更新日志中。“供应商似乎在发布我们的POC视频时删除了AnyDesk的8.0.2版本,”研究人员写道。
无法立即更新的管理员可以通过限制对TCP端口7070的访问来减少风险。该漏洞是否可以通过中继连接完全利用仍未解决。
漏洞的工作原理
AnyDesk的会话协议使用模式5流数据包。处理程序通过将16字节的头部添加到声明的有效负载长度来计算其后备分配的大小,使用32位算术而不进行溢出检查。
该利用声明有效负载长度为0xFFFFFFF0。添加0x10将32位结果环绕到零,因此分配器保留了一个小缓冲区,而对象记录了原始的大长度。即使是一个字节的攻击者数据也会写入分配的末尾。
溢出会破坏相邻堆对象中的字段,而该利用使用ROP链以根权限运行任意命令。
该漏洞由V12安全团队的Rick de Jager发现,使用了V12,一个安全代码审查引擎。V12的创始人之前建立了安全公司Zellic,并领导了竞争黑客团队Perfect Blue。
另一个AnyDesk堆缓冲区溢出漏洞CVE-2025-27918在2025年4月的7.0.0版本中修复。该漏洞影响所有AnyDesk平台,并涉及用户图像处理中的整数溢出,这是与AnyPwn的会话协议漏洞不同的机制。
AnyDesk在2024年初发生了一起单独事件,公司的生产系统被入侵,导致证书被撤销和强制重置密码。
觉得这篇文章有趣吗?请在Google News、Twitter和LinkedIn上关注我们,以阅读更多我们发布的独家内容。