CVE-2026-31709Linux内核SMB客户端组件在处理安全描述符时存在严重漏洞。由于未对服务器提供的DACL(自主访问控制列表)结构进行完整验证,攻击者可诱导受害者连接恶意SMB服务器。通过发送截断且包含伪造ACE数量的DACL数据包,可触发内核越界读写操作,进而导致系统拒绝服务或潜在权限提升。
该漏洞源于Linux内核SMB客户端在处理CIFS/SMB协议安全描述符时的逻辑缺陷。具体位于`fs/smb/client/cifsacl.c`文件的`build_sec_desc()`和`id_mode_to_cifs_acl()`函数中。当客户端尝试执行chmod或chown操作时,会解析服务器返回的DACL。原代码仅验证了DACL头部结构的完整性,却未对DACL主体中的ACE(访问控制项)数量与实际数据长度进行关联校验。攻击者可搭建恶意SMB服务器,响应一个包含合法头部但声称拥有大量ACE的截断DACL。内核在后续遍历ACE进行SID替换或拷贝时,会依据头部声明的`num_aces`值循环读取或写入,从而越过已分配的缓冲区边界。这种越界访问可能导致内核内存破坏、系统崩溃(拒绝服务),或在特定条件下实现内核代码执行。