CVE-2026-23953Incus是一个系统容器和虚拟机管理器。在6.20.0及以下版本中,具有创建容器权限的用户(如incus组成员)可以通过自定义YAML配置创建包含换行符的环境变量。由于缺乏对环境变量中换行符的过滤,攻击者可以利用换行注入技术在容器的lxc.conf配置文件中添加额外的配置项。通过添加任意生命周期钩子(lifecycle hooks),攻击者最终可以在宿主机上执行任意命令。该漏洞的CVSS评分为8.7,属于高危漏洞。攻击者只需要较低权限即可发起攻击,无需用户交互。成功利用此漏洞可导致宿主机的完全沦陷,造成机密性完全破坏和完整性完全破坏。
漏洞根源在于Incus处理容器环境变量时未对换行符进行适当过滤。在internal/server/instance/drivers/driver_lxc.go第1081行附近,代码将用户提供的环境变量直接写入lxc.conf配置文件。攻击者通过在环境变量值中插入换行符(\n),可以将多个配置指令注入到lxc.conf中。具体来说,攻击者可以添加lxc.hook.pre-start、lxc.hook.post-stop等生命周期钩子配置,这些钩子会在容器启动或停止时以root权限在宿主机上执行任意命令。由于lxc.conf的解析器会将换行符作为配置项的分隔符,攻击者可以利用这一特性绕过配置验证机制。值得注意的是,在IncusOS上利用此漏洞需要稍微修改payload,将工作目录改为可写目录(如/tmp)以通过验证步骤。