IPBUF安全漏洞报告
English
CVE-2026-40243 CVSS 4.8 中危

CVE-2026-40243 Incus OVN TLS验证绕过漏洞

披露日期: 2026-05-06

漏洞信息

漏洞编号
CVE-2026-40243
漏洞类型
证书验证绕过
CVSS评分
4.8 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Incus

相关标签

证书验证绕过TLSIncus中间人攻击CVE-2026-40243

漏洞概述

Incus系统容器和虚拟机管理器在7.0.0版本之前存在严重的TLS验证逻辑缺陷。在OVN数据库连接处理中,自定义验证逻辑未将信任锚定在配置的CA证书上,而是错误地从对等方提供的证书中构造验证根集。这使得攻击者能够在管理网络中模拟OVN端点,通过提交伪造的自签名证书链成功绕过安全验证,从而破坏基于CA的信任模型,引发数据泄露或篡改风险。

技术细节

该漏洞的核心原因在于Incus对Go标准TLS库的验证机制进行了不当替换。Incus的OVN客户端实现禁用了标准的TLS服务器证书验证,转而使用自定义的对等证书验证逻辑。然而,该自定义验证器存在致命逻辑错误:它没有使用系统或用户配置的CA证书作为信任锚点来验证对等方证书的有效性。相反,它在TLS握手期间直接提取对等方(即潜在的攻击者)提供的证书,并将其加入信任根集合。因此,当攻击者位于能够拦截或模拟OVN端点的网络位置时,可以向Incus呈现一个伪造的自签名证书链。由于验证过程将伪造的证书视为信任源,Incus会错误地判定该证书有效,从而建立连接。这一缺陷完全破坏了TLS协议旨在提供的基于CA的信任模型,使得中间人攻击或恶意端点模拟成为可能。

攻击链分析

STEP 1
侦察
攻击者扫描目标网络,识别出启用了OVN(Open Virtual Network)组件的Incus部署环境。
STEP 2
网络定位
攻击者将自身置于能够拦截或模拟OVN数据库端点的网络位置(例如中间人位置或ARP欺骗)。
STEP 3
证书伪造
攻击者生成一个自签名的恶意证书链,准备冒充合法的OVN数据库服务器。
STEP 4
利用漏洞
当Incus尝试连接OVN数据库时,攻击者拦截请求并呈现伪造的自签名证书。由于验证逻辑缺陷,Incus将该证书视为有效。
STEP 5
建立连接
TLS握手成功,Incus与攻击者控制的恶意数据库建立连接,导致潜在的数据库读取或篡改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC: Vulnerable Verification Logic * This Go snippet demonstrates the flawed logic where the trust root * is constructed from the peer's certificates instead of a configured CA. */ package main import ( "crypto/tls" "crypto/x509" ) func vulnerableVerifyPeerCertificate(rawCerts [][]byte, verifiedChains [][]*x509.Certificate) error { // VULNERABLE LOGIC: Creating a new CertPool and adding the peer's raw certs // This effectively trusts any certificate presented by the attacker. roots := x509.NewCertPool() for _, rawCert := range rawCerts { cert, err := x509.ParseCertificate(rawCert) if err != nil { return err } roots.AddCert(cert) // Adding attacker's cert as a trusted root } opts := x509.VerifyOptions{ Roots: roots, // Using the compromised pool } // Verify the chain using the attacker-supplied roots if len(verifiedChains) > 0 { _, err := verifiedChains[0][0].Verify(opts) return err } return nil } // This function would be passed to tls.Config{VerifyPeerCertificate: ...} func main() { cfg := &tls.Config{ InsecureSkipVerify: true, VerifyPeerCertificate: vulnerableVerifyPeerCertificate, } _ = cfg }

影响范围

Incus < 7.0.0

防御指南

临时缓解措施
在未升级补丁前,建议通过网络访问控制列表(ACL)或防火墙严格限制对OVN数据库端口(通常是6641/tcp或6642/tcp)的访问,确保仅有合法的Incus服务器IP地址可以连接。同时,监控管理网络内的异常流量和证书告警。

参考链接

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