CVE-2026-40706NTFS-3G在处理特定NTFS安全描述符时存在堆缓冲区溢出漏洞。该漏洞位于`acls.c`文件的`ntfs_build_permissions_posix()`函数中,由于对包含特定WRITE_OWNER权限的ACCESS_DENIED ACE处理不当,导致攻击者可利用恶意NTFS镜像触发漏洞。由于`ntfs-3g`通常具有SUID-root权限,成功利用此漏洞可导致堆内存损坏,进而允许本地攻击者提升权限。
该漏洞的核心在于NTFS-3G在将NTFS访问控制列表(ACL)转换为POSIX权限时的逻辑缺陷。具体而言,当`ntfs_build_permissions_posix()`函数处理一个包含多个来自不同组SID且带有`WRITE_OWNER`标志的`ACCESS_DENIED` ACE(访问控制项)时,未能正确计算所需的堆缓冲区大小,导致写入操作越界。由于`ntfs-3g`二进制文件通常被配置为SUID-root,普通用户可以挂载特制的NTFS镜像文件。一旦挂载,系统触发任何读取路径操作(如stat、readdir或open),都会调用该漏洞函数,引发堆溢出。攻击者可精心构造恶意NTFS镜像,覆盖堆中的关键数据结构(如函数指针或返回地址),从而在目标系统上以root权限执行任意代码。