KernelScan.io

HIGH

xfs LogRoundoff Corruption

CVE-2026-43365

CVSS 8.2 / 10.0 NVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H

KernelScan AI7.1HIGH

01

In the Linux kernel, the following vulnerability has been resolved: xfs: fix undersized l_iclog_roundoff values If the superblock doesn't list a log stripe unit, we set the incore log roundoff value to 512. This leads to corrupt logs and unmountable filesystems in generic/617 on a disk with 4k physical sectors... XFS (sda1): Mounting V5 Filesystem ff3121ca-26e6-4b77-b742-aaff9a449e1c XFS (sda1): Torn write (CRC failure) detected at log block 0x318e. Truncating head block from 0x3197. XFS (sda1): failed to locate log tail XFS (sda1): log mount/recovery failed: error -74 XFS (sda1): log mount failed XFS (sda1): Mounting V5 Filesystem ff3121ca-26e6-4b77-b742-aaff9a449e1c XFS (sda1): Ending clean mount ...on the current xfsprogs for-next which has a broken mkfs. xfs_info shows this... meta-data=/dev/sda1 isize=512 agcount=4, agsize=644992 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=1 = reflink=1 bigtime=1 inobtcount=1 nrext64=1 = exchange=1 metadir=1 data = bsize=4096 blocks=2579968, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1, parent=1 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=4096 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 = rgcount=0 rgsize=268435456 extents = zoned=0 start=0 reserved=0 ...observe that the log section has sectsz=4096 sunit=0, which means that the roundoff factor is 512, not 4096 as you'd expect. We should fix mkfs not to generate broken filesystems, but anyone can fuzz the ondisk superblock so we should be more cautious. I think the inadequate logic predates commit a6a65fef5ef8d0, but that's clearly going to require a different backport.

02

Engine v0.2.0

Risk summary

Systems mounting XFS filesystems are at risk of filesystem corruption and data loss. Attackers with local access or ability to provide crafted XFS images can trigger log corruption that renders filesystems unmountable.

Affectedfs/xfs/xfs_log.c (XFS filesystem)

Vulnerability analysis

The XFS log allocation code incorrectly sets the log roundoff value to 512 bytes when no stripe unit is specified, regardless of the actual log sector size. On storage with 4K sectors, this causes misaligned writes leading to torn writes and CRC failures. The fix ensures the roundoff value matches the log sector size when available, preventing alignment issues that corrupt the filesystem log.

03

BranchFixed inPatch commit
5.155.15.2035afae524f83d
6.16.1.1672ecda4b83749
6.126.12.78e88ce9f0536f
6.186.18.19446a1f5bb64b
6.196.19.95e7148402dfc
6.66.6.13041e91dff2d39
mainline7.052a8a1ba883d