2008年,Linux 2.6.25内核发布时,SCTP网络协议栈中引入了一个不起眼的代码错误。18年后,腾讯安全的研究人员发现,这个漏洞可以让一个普通用户直接提权至Root,甚至从容器中逃逸出来——而修复补丁,直到2026年8月3日才正式合入。
一个存在了18年的“幽灵”
CVE-2026-64564,被腾讯玄武实验室命名为 SCTPhantom,是一个存在于Linux内核SCTP(流控制传输协议)网络代码中的释放后使用(Use-After-Free)漏洞。
SCTP是一种传输层协议,其核心特点是支持多宿主(multihoming) ——单条连接可以同时使用多条网络路径。其配套的动态地址重配置(Dynamic Address Reconfiguration) 功能,允许对端在连接过程中动态增删IP地址。
漏洞正出在这个地址重配置的逻辑中:
内核在处理删除地址请求时,用数据包的源地址来验证请求是否合法,但在执行删除操作时,却使用了消息内部另一个不同的地址所指向的路径。
利用这一“身份错位”,攻击者可以构造一系列精心编排的消息:先携带一个地址、删除同一个地址、再发送一个通配删除请求。这个序列会释放掉那条路径(路径对应的内存已被释放),然后内核又复用了这个已释放的指针。
换句话说:内存已经被释放了,但内核还在继续使用它。
从普通用户到Root,再到容器逃逸
腾讯玄武实验室在多个主流发行版上成功复现了漏洞:
更令人警惕的是,腾讯的研究人员声称利用该漏洞成功实现了容器逃逸。在测试中,他们保持了默认的seccomp配置,且未授予容器CAP_NET_ADMIN或CAP_SYS_ADMIN权限,8次尝试中有6次成功获得了宿主机的Root权限。
这意味着:即使你的容器配置看起来“安全”,攻击者依然可能通过这个漏洞逃出来。
谁受影响?几乎所有Linux发行版
该漏洞的根源可以追溯到2008年的Linux 2.6.25内核。自那以后发布的每一个Linux内核版本都包含这个缺陷。
几乎所有的现代Linux发行版都在受影响范围内——包括你正在使用的服务器、开发环境、容器集群。
不过,该漏洞有两个关键的限制条件:
需要SCTP协议在目标系统上可访问
是本地漏洞,而非远程漏洞
这意味着攻击者需要先在目标系统上获得代码执行权限(比如通过钓鱼、恶意软件或其他漏洞),然后才能利用SCTPhantom提权至Root。它不是一个可以从外部直接利用的漏洞,但一旦攻击者获得了普通用户权限,它就是一个通往Root的“直梯”。
如何确认是否已修复?
上游修复已于2026年8月3日合入以下稳定内核版本:
但仅凭内核版本号无法确认是否已修复——发行版厂商通常会向后移植(backport)修复补丁,而不升级到新的上游版本。
正确的检查方式:查询你使用的Linux发行版的官方漏洞追踪器,确认该发行版是否已推送针对CVE-2026-64564的安全更新。
公开状态:PoC未公开,但风险正在累积
截至2026年8月7日:
但请注意:漏洞已于2026年8月6日公开披露,距内核CVE团队分配编号仅过去两天。PoC尚未公开,不代表PoC不会公开。
企业安全团队:立即行动清单
1. 检查内核版本
运行uname -r查看当前内核版本。但不要仅凭版本号判断——确认你的发行版是否已推送针对CVE-2026-64564的补丁。
2. 检查SCTP是否可访问
运行以下命令检查SCTP模块是否已加载或可被加载:
lsmod | grep sctplsmod | grep sctp
如果SCTP模块已加载,且你不需要使用SCTP协议,可以考虑禁用或卸载该模块,以缩小攻击面。
3. 尽快安装厂商安全更新
联系你的Linux发行版厂商,确认修复补丁的可用性并尽快部署。
4. 关注容器运行时安全
如果你的环境运行容器,不要假设默认的seccomp配置足以防御容器逃逸。腾讯的测试已经证明,在默认配置下容器逃逸是可能的。建议:
审查容器运行时配置
考虑启用更严格的seccomp策略
监控异常的SCTP相关系统调用