CVE-2026-43365Linux内核中的XFS文件系统存在一个高危漏洞,编号为CVE-2026-43365。该漏洞源于对日志写入缓冲区舍入值的计算逻辑缺陷。当超级块未列出日志条带单元时,内核错误地将内存中的日志舍入值设置为512字节。然而,在具有4KB物理扇区的现代存储设备上,这种不匹配会导致日志写入未按物理扇区边界对齐,进而引发日志损坏和CRC校验失败。攻击者无需用户交互或认证,即可通过特制的文件系统镜像触发该漏洞,导致文件系统无法挂载或系统崩溃,严重影响系统可用性。
该漏洞位于Linux内核的XFS文件系统驱动程序中,具体涉及`xfs_log_mount`函数对`l_iclog_roundoff`值的初始化逻辑。XFS文件系统在挂载时,会读取超级块中的日志条带单元(sunit)参数。如果该参数为0(即未指定),代码会错误地将`l_iclog_roundoff`硬编码为512字节,而没有考虑底层设备的物理扇区大小(如4096字节)。
利用方式:攻击者可以通过Fuzzing工具或修改`mkfs.xfs`工具,构造一个超级块中`sunit=0`但实际物理扇区为4KB的特制文件系统镜像。当受害者尝试挂载该镜像时,内核会使用错误的舍入值进行日志写入。由于512字节与4KB扇区不匹配,会导致写入未对齐,产生“撕裂写入”或CRC校验错误。这将触发XFS的日志恢复机制失败,输出“Torn write (CRC failure) detected”等错误信息,最终导致文件系统变为不可用状态,实现拒绝服务攻击。