CVE-2023-53543CVE-2023-53543是Linux内核vdpa(vhost data path acceleration,虚拟主机数据路径加速)子系统中存在的一个安全漏洞。该漏洞源于vdpa_nl_policy结构体中缺少对max vqp属性的nla_policy验证策略。vdpa_nl_policy结构体用于在解析传入的netlink消息(nlmsg)时验证nlattr属性,确保被描述的属性在进入vdpa_nl_ops中的各个处理函数之前,能够在info->attrs中产生有效的nlattr指针。如果策略中缺少对max vqp属性的定义,可能导致在解析netlink消息后产生非法的nlattr指针,进而引发越界(OOB)读取漏洞,其危害模式与此前披露的CVE-2023-3773类似。攻击者可以通过构造恶意的netlink消息,绕过属性长度检查,触发内核中的越界读取,可能导致内核崩溃、信息泄露或权限提升等严重后果。该漏洞的CVSS评分为7.8,属于高危级别,影响机密性、完整性和可用性三个维度均为高。攻击者需要具有本地低权限访问能力,无需用户交互即可利用此漏洞,对系统安全构成重大威胁。
在Linux内核的vdpa子系统中,netlink接口用于用户空间与内核空间之间的通信。当用户空间通过netlink向内核发送消息时,内核会使用vdpa_nl_policy结构体来验证消息中包含的nlattr属性。该策略结构体定义了每个属性的最大长度限制,确保只有合法的属性才能被传递给相应的处理函数。
该漏洞的根本原因在于vdpa_nl_policy结构体中缺少对VDPA_ATTR_MAX_VQP(max vqp属性)的nla_policy定义。这意味着当用户空间发送包含max vqp属性的netlink消息时,内核无法验证该属性的长度是否合法,可能导致以下安全问题:
1. 属性验证缺失:缺少策略定义使得max vqp属性在解析时不会被验证其长度,可能导致属性长度超出预期范围。
2. 越界读取风险:当处理函数访问该属性的数据时,如果属性长度异常,可能导致内核读取超出分配内存边界的数据,触发越界读取漏洞。
3. 与CVE-2023-3773类似:此漏洞的危害模式与CVE-2023-3773类似,后者同样是因netlink策略缺失导致的越界读取问题。
攻击者利用此漏洞需要具有本地系统的低权限访问能力,通过构造恶意的netlink消息并发送给vdpa子系统,即可触发越界读取漏洞。成功利用后,攻击者可能导致内核崩溃(拒绝服务)、读取内核敏感信息(信息泄露),甚至在特定条件下实现权限提升。