CVE-2026-31712Linux内核中的ksmbd模块在处理SMB协议的DACL时存在越界读取漏洞。攻击者利用低权限认证后,通过设置精心构造的ACL,可在内核处理文件创建请求时触发越界内存读取。该漏洞可能导致内核状态损坏或KASAN告警,但不直接泄露数据给攻击者。
漏洞位于Linux内核`ksmbd`的`smb_check_perm_dacl()`函数。该函数在遍历访问控制列表(ACL)时,仅校验了剩余缓冲区是否大于ACE头部大小,未校验ACE声明的`ace->size`是否足够覆盖后续的`access_req`和`sid`字段。攻击者可设置`ace->size`为4(仅头部),通过当前的检查逻辑。随后代码尝试读取偏移量4和8处的数据,导致越界读取。利用前提是攻击者需拥有设置文件ACL的权限。修复方案是加强ACE大小的最小值校验,确保包含完整的SID结构。