发布日期: 2026 年 10 月 16 日
风险等级: 严重(Critical)
漏洞编号: CVE-2026-47218
CVSS: 9.3(Critical,CVSS 4.0)
披露时间: 2026 年 10 月,containerd/runwasi 安全公告
相关公告: GHSA-cc25-vq59-rcjx
一、漏洞概述
runwasi 给 containerd 提供 Wasm / WASI 运行时。containerd-shim-wasmtime-v1 在 0.6.0 及更早 走预编译缓存时,可能把 OCI 镜像层里直接带来的 Wasmtime 预编译字节当成可信的 precompile-cache,反序列化成本地代码。正常路径应当只从本机可信缓存加载。
攻击者需要诱使目标节点拉取并运行一份恶意 OCI / Wasm 镜像。之后可以绕过 WebAssembly / WASI 校验,在 shim 的 zygote 进程里执行原生代码。
能碰到的是这个工作负载容器边界内的文件系统、环境变量、凭据、网络,以及容器允许的 Linux 系统调用。它本身不会直接穿出容器隔离,也不会因此在宿主机上执行代码。其他使用 runwasi containerd-shim-wasm 预编译缓存 API、并且信任镜像层预编译产物的 shim,也可能受影响。
这是节点上的 shim 二进制,不是一条业务容器镜像标签。
二、漏洞状态
统计截止: 2026 年 10 月 18 日(UTC+8)
| 项目 | 状态 |
|---|---|
| 漏洞细节 | 已公开(runwasi 安全公告、NVD) |
| 漏洞类型 | 伪造的 Wasmtime 预编译产物被当作可信缓存反序列化 |
| 受影响版本 | containerd-shim-wasmtime / runwasi ≤ 0.6.0 |
| 官方补丁 | ≥ 0.6.1 |
| 前置条件 | 节点使用受影响 shim 运行不可信 OCI / Wasm 镜像,且走预编译缓存路径 |
| CISA KEV | 未列入 |
三、影响范围
1. 组件
| 组件 | 受影响范围 | 修复 |
|---|---|---|
containerd-shim-wasmtime-v1 | ≤ 0.6.0 | ≥ 0.6.1 |
| 复用同一预编译缓存 API 的下游 shim | 信任镜像层里的预编译产物 | 按上游修到不再信任镜像层产物 |
请从 runwasi 官方 GitHub Release 取得 0.6.1 或更高的 shim,替换节点上的二进制。不要按镜像命名空间猜测一条 Hub 坐标来代替这次升级。
2. 典型受影响场景
- Kubernetes 或 containerd 节点用 wasmtime shim 跑不受信任的 Wasm 工作负载
- 预编译缓存会读取镜像层里带来的字节,而不是只读本机缓存
- 工作负载容器里有云凭证、仓库令牌或内网访问
只运行自己构建、并且不走“镜像层提供预编译产物”这条路径的节点,利用条件会少一些。0.6.0 及更早的 shim 在修补前仍不应拿来跑不可信镜像。
四、修复建议
1. 把 shim 升到 0.6.1 或更高(推荐)
从 containerd-shim-wasmtime/v0.6.1 或更高发行替换节点上的 containerd-shim-wasmtime,重启 containerd 或对应的 shim,确认运行中的版本不低于 0.6.1。
更换业务容器镜像不会升级节点上的 shim。
2. 已经跑过不可信 Wasm 镜像的节点
按该工作负载容器边界内的凭据可能已被读取处理:轮换容器能访问的密钥,并用修复后的 shim 重建相关 Pod。这不等于宿主机已经被植入代码。
五、临时缓解措施
在完成升级之前:
-
不要用 0.6.0 及更早的 wasmtime shim 运行不可信 OCI 镜像
镜像层里的预编译字节可能被当成可信缓存。 -
关掉或停用预编译缓存路径
如果当前版本只能“信任镜像层产物”和“不用这条缓存”二选一,先不要走缓存。这不能代替 0.6.1。 -
先换 shim,再调度新的 Wasm 工作负载
滚动替换 Pod 镜像不会更换节点上的 runwasi。
六、与轩辕镜像用户的相关说明
这条修复在 runwasi 的 shim 发行包里。请从官方 GitHub Release 安装 0.6.1 或更高。加速拉取业务镜像不会更换节点上的 containerd-shim-wasmtime。
七、参考链接
- runwasi:GHSA-cc25-vq59-rcjx
- NVD:CVE-2026-47218
- 发行说明:containerd-shim-wasmtime/v0.6.1
轩辕镜像安全团队
2026 年 10 月 16 日
评论交流
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
