A data leak flaw was found in the way XFS_IOC_ALLOCSP IOCTL in the XFS filesystem allowed for size increase of files with unaligned size. A local attacker could use this flaw to leak data on the XFS filesystem otherwise not accessible to them.
This issue can be mitigated by ensuring xfs_alloc_file_space is not called with "0" as an argument.
This can be done with a SystemTap script (which resets "0" with XFS_BMAPI_PREALLOC), below are the steps:
-– On Red Hat Enterprise Linux 6 —
probe module("xfs").function("xfs_alloc_file_space") {
if ($alloc_type == 0)
$alloc_type = 0x40; # XFS_BMAPI_PREALLOC
}
-– On Red Hat Enterprise Linux 6 —
-– On Red Hat Enterprise Linux 7 onwards —
probe module("xfs").function("xfs_alloc_file_space") {
if ($alloc_type == 0)
$alloc_type = 0x8; # XFS_BMAPI_PREALLOC
}
-– On Red Hat Enterprise Linux 7 onwards —
Install systemtap package and its dependencies
Build the mitigation kernel module as root.
uname -r
-m cve_2021_4155.ko -g CVE-2021-4155.stp -p4Load the mitigation module as root
What is SystemTap and how to use it?
<https://access.redhat.com/solutions/5441>