Canonical 于 10 月 29 日发布安全公告,披露 LXD 与 MicroCloud 中的一处证书校验缺陷,编号 CVE-2026-112816,CVSS 4.0 评分达到满分 10.0。攻击者只要拿到集群里任一受信任客户端的公开证书,就能伪造证书链冒充该客户端,在没有任何账号密码的情况下接管整个 LXD 集群,以及集群下全部虚拟机和容器。
事件概述
LXD 是 Canonical 维护的系统容器与虚拟机管理器,在 Ubuntu 服务器、私有云和服务器集群中大量用于承载业务。MicroCloud 则是在 LXD 之上构建的轻量私有云方案,两者共用同一套 HTTPS API 与信任机制。
受影响版本为 LXD 4.0.14、5.0.10、5.21.8、6.9 及更早版本,MicroCloud 的具体受影响版本厂商未逐一列出,只给出修复版本。官方修复版本如下:
- LXD 6.x → 6.10.1
- LXD 5.21 LTS → 5.21.9
- LXD 5.0 LTS → 5.0.11
- LXD 4.0 LTS → 4.0.15
- MicroCloud 3.x → 3.4.1,MicroCloud 2.x → 2.1.5
通过 snap 安装的用户执行 sudo snap refresh lxd,MicroCloud 用户执行 sudo snap refresh microcloud 即可升级。
技术细节
漏洞归类为 CWE-295,即证书校验不当。安全公告的表述是:HTTPS 监听器在验证客户端证书时,没有正确校验完整证书链,导致未认证的网络攻击者可以构造一条伪造的证书链,让服务端认为请求来自某个受信任的客户端。
这一点是整件事最值得警惕的地方。正常设计下,远程管理 LXD 必须持有对应私钥完成双向 TLS 认证,私钥外泄才意味着身份被盗。而这处缺陷把门槛降到了「公开证书」——公开证书本身就是公开的,集群中每台已注册客户端都持有,一旦某台机器上的证书文件被读走、被打包进镜像、被误传到代码仓库,攻击者就有了伪造的原材料。
CVSS 4.0 向量为 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H:网络可达、复杂度低、无需前置条件、无需权限、无需用户交互,机密性、完整性、可用性全部为高,且对下游系统同样为高。这个向量组合基本解释了满分的由来。
影响评估
成功利用后,攻击者获得的是集群管理面权限,可以直接创建、删除、迁移实例,向容器内注入命令,或挂载宿主机目录。由于 LXD 以高权限守护进程运行,从集群管理面进一步拿到宿主机 root 通常只差一步。
以下场景不受影响:普通 Ubuntu 桌面用户、只使用 Docker 的用户、使用 Proxmox VE 自带 LXC 的用户。
目前该漏洞不在 CISA 已知被利用漏洞(KEV)目录中,FIRST EPSS 给出的 30 天内被利用概率约为 0.3%(第 23 百分位),公开渠道暂未发现 PoC。漏洞由 Stéphane Graber 报告,最初由 Incus 项目转介。时间线上,LXD 4.0.15 在 10 月 28 日随安全修复发布,公告于 10 月 29 日公开,CVE 记录在 10 月 30 日发布。
需要提醒的是,EPSS 低不代表可以放一放。LXD 的 API 端口 8443 在很多部署里是直接暴露在公网的,而这类「管理面被打穿」的后果是不可逆的。
修复建议
- 立即升级到对应分支的修复版本,snap 用户直接 refresh,持有自定义构建的需同步打补丁。
- 盘点集群信任列表。执行
lxc config trust list逐条核对指纹,删除来源不明或已下线机器的客户端证书,这一步同时是失陷检测手段。 - 收敛暴露面。用安全组或防火墙把 8443 限制到运维网段,确需公网访问的,前置一层带 MFA 的零信任网关,不要让 LXD API 裸奔。
- 审计历史操作。检查
lxc list --all-projects与实例创建时间,排查非预期实例、非预期镜像源和宿主机上的异常 SSH 授权。 - 清理泄露面。确认证书私钥与 .crt 文件没有出现在代码仓库、CI 变量导出、备份包或镜像层中。
对国内使用 LXD 构建私有云的团队来说,这次补丁的紧迫性在于升级成本很低——一条 snap refresh 就能完成,没有理由等到下个维护窗口。