CVE-2026-35375CVE-2026-35375 是 uutils coreutils 中 split 工具的一个逻辑错误漏洞。当提供非 UTF-8 前缀或后缀输入时,会导致输出文件名损坏。该实现在构建块文件名时使用了 to_string_lossy(),会自动将无效字节序列重写为 UTF-8 替换字符。这种行为与 GNU split 不同,后者保留了原始路径名字节。在使用非 UTF-8 编码的环境中,此漏洞会导致创建名称错误的文件,潜在地导致文件名冲突、自动化中断或输出数据误导。
该漏洞的核心在于 uutils coreutils 中 split 命令对非 UTF-8 编码的处理方式不当。在 Rust 标准库中,字符串必须是有效的 UTF-8,当处理文件路径(本质上是字节序列)时,如果直接将 OsString 或字节切片转换为 String 并使用 to_string_lossy(),所有无效字节都会被替换为 U+FFFD。这使得两个不同的非 UTF-8 输入(例如包含字节 0x80 和 0x81)可能被转换为相同的文件名,导致文件覆盖(完整性影响)。攻击者可利用此特性,在本地环境通过构造特殊的输入参数,触发文件名冲突,进而导致关键数据被意外覆盖或备份脚本失效。尽管需要低权限且仅限本地攻击,但在多用户共享环境或自动化数据处理流水线中,其破坏性不容忽视。