CVE-2026-43490Linux内核的ksmbd驱动程序中存在安全漏洞,源于smb_inherit_dacl()函数在处理继承的自主访问控制列表(DACL)时,未充分验证访问控制项(ACE)中安全标识符(SID)的长度。恶意构造的ACE可误导系统读取越界数据或导致缓冲区溢出,从而可能引发拒绝服务或更严重的后果。
该漏洞位于ksmbd处理文件权限继承的逻辑中。当在父目录下创建新对象时,smb_inherit_dacl()会遍历父目录的DACL。虽然它检查了ACE的固定头,但未验证sid.num_subauth字段指定的子授权数量是否实际包含在ACE数据区中。攻击者可设置过大的num_subauth值。当compare_sids()处理此SID时,会读取ACE边界之外的内存(越界读)。同时,smb_set_ace()利用未校验的计数计算大小,导致在复制继承的ACE时写入超出预分配缓冲区的数据(缓冲区溢出)。这可能导致内核崩溃或潜在的代码执行。