CVE-2026-35347uutils coreutils中的comm工具存在安全漏洞。该工具在执行比较操作前,会错误地从非常规文件输入(如FIFO或管道)中消耗数据。`are_files_identical`函数在未验证文件类型的情况下直接读取路径内容,导致数据流在比较逻辑执行前被排空,从而引发静默数据丢失。此外,如果尝试从`/dev/zero`等无限流中预读取,该工具可能会无限期挂起。
该漏洞的核心在于uutils coreutils项目中`comm`工具的文件预处理逻辑存在缺陷。为了优化性能,代码在进入主比较循环前,调用了`are_files_identical`函数来判断两个输入文件是否完全相同。然而,该函数的实现存在严重疏忽,它直接调用文件读取操作,而没有预先检查输入路径是否指向常规文件。
当输入源为FIFO(命名管道)或匿名管道时,这种盲目的读取操作会立即消耗管道缓冲区中的数据。由于这些数据已被`are_files_identical`函数读取并丢弃,后续实际的比较逻辑将无法获取这些数据,从而导致静默的数据丢失,用户可能无法察觉处理结果的不完整。
此外,如果输入路径指向类似`/dev/zero`这样的无限流设备,读取操作将陷入死循环,导致`comm`进程永久挂起,消耗系统资源,形成拒绝服务攻击。