CVE-2026-35346uutils coreutils项目中的comm实用工具存在数据损坏漏洞。该漏洞源于实现过程中使用了`String::from_utf8_lossy()`函数,导致所有输出行均执行有损的UTF-8转换。此机制会将无效的UTF-8字节序列替换为Unicode替换字符(U+FFFD),这与GNU comm处理原始字节并保留原始输入的标准行为存在显著差异。当该工具被用于比较二进制文件或采用非UTF-8遗留编码的文件时,将直接导致输出数据被静默损坏,从而破坏数据的完整性和准确性。
该漏洞位于uutils coreutils的Rust实现代码中。在`comm`命令的底层逻辑里,开发者错误地使用了Rust标准库的`String::from_utf8_lossy()`方法来处理输入流。该函数在遇到非UTF-8字节序列(如二进制数据或GBK等编码)时,不会抛出异常或保留原样,而是强制将其转换为Unicode替换字符。这种有损转换导致原始数据的字节流不可逆地被修改。攻击向量为本地(AV:L),需要低权限(PR:L)即可触发。虽然此漏洞不直接影响机密性和可用性,但严重破坏了数据完整性(I:L)。攻击者可通过诱导受害者使用受影响版本的comm工具处理特定编码文件,实现数据的静默篡改。