【漏洞预警】Wasmtime 爆严重漏洞,不可信 Wasm 可能逃出沙箱(CVE-2026-115384)
2026/10/23Docker漏洞预警轩辕镜像团队约 9 分钟阅读

【漏洞预警】Wasmtime 爆严重漏洞,不可信 Wasm 可能逃出沙箱(CVE-2026-115384)

Wasmtime 在 component-model-async 回调的返回类型上缺少校验,访客可以向进程的原生栈写入约 16KB,造成崩溃或逃出沙箱执行代码(CVE-2026-115384,NVD 9.9,GHSA CVSS 4.0 为 9.3)。另一条高危允许访客经尾部斜杠的符号链接逃出文件系统沙箱(CVE-2026-115392,7.9)。请按分支升到 48.0.4 / 49.0.2,以及 24.0.13 / 36.0.14 / 46.0.3 / 47.0.4。没有官方 Hub 镜像。

发布日期: 2026 年 10 月 23 日
风险等级: 严重(Critical)
漏洞编号: CVE-2026-115384 · CVE-2026-115392
CVSS: 9.9(Critical,NVD,CVE-2026-115384);GHSA CVSS 4.0 为 9.3。CVE-2026-115392 为 7.9(High)
披露时间: GHSA-32h6-97mm-8q3c 于 2026 年 10 月 2 日发布;GHSA-vqjp-4c8c-hfgg 于 2026 年 8 月 20 日发布。NVD 于 2026 年 10 月 22 日挂出 CVE
相关公告: GHSA-32h6-97mm-8q3c · GHSA-vqjp-4c8c-hfgg


一、漏洞概述

Wasmtime 用来运行 Wasm,也常被 runwasi 等容器运行时嵌进来执行 Wasm 工作负载。两条都是沙箱逃逸。跑不可信 Wasm 的进程要一起处理。

CVE-2026-115384: component-model-async 回调所用的核心函数,返回类型没有校验。访客可以向进程的原生栈写入大约 16KB 自己选择的数据,覆盖返回地址,使进程崩溃,或把控制转到宿主代码。地址随机化和不可执行栈能增加利用难度,嵌入 Wasmtime 的程序仍应按可以逃出沙箱处理。

CVE-2026-115392: wasmtime-wasi 对路径或符号链接末尾的斜杠处理不当。拿到沙箱内某个目录写权限的访客,可以读写宿主进程能访问的其他文件和目录。只有只读权限时,如果目录里已经有符号链接,也可能读到沙箱外的内容。

这和 runwasi 0.6.1 修过的预编译缓存问题不是同一条。把 shim 停在 0.6.1,不会自动换上这次的 Wasmtime。


二、漏洞状态

统计截止: 2026 年 10 月 23 日(UTC+8)

项目状态
漏洞细节已公开(Wasmtime GHSA、NVD)
安装方式Rust crate 或 GitHub Release。Docker Hub 没有 bytecodealliance/wasmtime
CISA KEV未列入
CVE受影响版本修复起点
CVE-2026-11538439.0.0 至 48.0.3;49.0.0 与 49.0.148.0.4、49.0.2
CVE-2026-115392≤ 24.0.12;25.0.0–36.0.13;37.0.0–46.0.2;47.0.0–47.0.324.0.13、36.0.14、46.0.3、47.0.4

48 和 49 不在 CVE-2026-115392 的受影响范围里。39 至 47 若低于上表的修复起点,两条可能同时中。同一分支上已有更高的正式版,例如 48.0.7、49.0.4、36.0.19。升到修复起点或该分支更新的正式版即可,不要为了卡最小版本号而留在更旧的补丁上。


三、影响范围

运行不可信 Wasm 的宿主进程,以及用 containerd-runwasi 等在节点上跑 Wasm 工作负载的环境。逃逸发生在嵌入 Wasmtime 的那个进程里,能碰到该进程的权限,而不是访客原本的沙箱视图。

只跑自己构建、且不启用 component-model-async、也不把目录开放给访客的程序,两条的触发面会小一些。版本仍在上表范围内时,还是要升级。


四、修复建议

1. 按分支升级 Wasmtime(推荐)

所在分支CVE-2026-115384CVE-2026-115392
24不受这条影响(低于 39)≥ 24.0.13
36不受这条影响(低于 39)≥ 36.0.14
39 至 4748 分支升到 ≥ 48.0.446 升到 ≥ 46.0.3,47 升到 ≥ 47.0.4
49≥ 49.0.2不在这条的受影响范围
5050.0.0 晚于 49.0.2不在这条的受影响范围

发行说明:v48.0.4 · v49.0.2 · v47.0.4 · v46.0.3 · v36.0.14 · v24.0.13。

用 crate 的,把 wasmtime 和 wasmtime-wasi 锁定到上述版本或该分支更高的正式版,重新编译嵌入它的程序,再重启进程。用 runwasi 的,除了 shim 本身,还要确认编进去的 Wasmtime 已经到达修复起点。

2. 暂时不能升级 CVE-2026-115384 时

可以先关掉 component-model-async。这只缩小栈写入那一条的入口,挡不住文件系统沙箱逃逸,也不能代替升级。


五、临时缓解措施

在升到修复版之前:

  1. 不要用受影响版本运行不可信 Wasm
    访客可以逃出沙箱,权限等于宿主进程。

  2. 不要把目录写权限交给不可信访客
    这只缩小 CVE-2026-115392 的入口。

  3. 不要把 runwasi 0.6.1 当成这次的修复
    0.6.1 修的是预编译缓存。Wasmtime 要单独升。


六、与轩辕镜像用户的相关说明

这条修复在 Wasmtime 的 crate 或 GitHub Release 里。加速拉取业务镜像不会更换节点上嵌进去的 Wasmtime。

配置与排错见 轩辕镜像使用手册、镜像拉取 FAQ。


七、参考链接


轩辕镜像安全团队
2026 年 10 月 23 日

评论交流

加载中

免责声明

本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。

用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。

用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。

本免责声明的最终解释权归轩辕镜像官方所有。

最后更新:2026/10/23
官方技术交流群:问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告