CVE-2026-35352uutils coreutils 项目中的 mkfifo 实用程序存在严重的 Time-of-Check to Time-of-Use (TOCTOU) 竞态条件漏洞。该工具在创建命名管道(FIFO)后,会执行基于路径的 chmod 操作以设定权限。在创建文件与修改权限的时间窗口内,拥有父目录写入权限的本地攻击者可将新创建的 FIFO 替换为指向任意文件的符号链接。这导致 chmod 调用被重定向,修改非预期文件的权限。如果 mkfifo 以高权限运行,攻击者可借此修改系统关键文件权限,从而实现本地权限提升。
该漏洞属于典型的 TOCTOU(Time-of-Check Time-of-Use)竞态漏洞。在 uutils coreutils 的实现中,程序逻辑首先调用系统函数创建 FIFO 节点,随后紧接着调用 chmod 函数通过文件路径来修改该节点的权限。这种“先创建后修改权限”的分离操作在并发环境下存在时间差。攻击者利用这个时间差,在父目录具有写权限的前提下,通过并发脚本监控目录变化。一旦检测到 mkfifo 创建了文件,攻击者立即将其删除并替换为一个指向目标文件(如 /etc/passwd 或 /etc/sudoers)的软链接。由于 mkfifo 后续的 chmod 操作使用的是之前缓存的路径字符串,操作系统会将权限修改操作应用到软链接指向的目标文件上。如果 mkfifo 是由 root 用户执行的,攻击者就能将任意文件的权限修改为可写,进而获取系统最高权限。