Overview
About vulnerability
In the Linux kernel, the following vulnerability has been resolved:
xfs: resample the data fork mapping after cycling ILOCK
xfs_reflink_fill_{cow_hole,delalloc} are both presented with an inode, a data fork mapping, and a cow fork mapping. Unfortunately, these two helpers cycle the ILOCK to grab a transaction, which means that the mappings are stale as soon as we reacquire the ILOCK. Currently we refresh the cow fork mapping by re-calling xfs_find_trim_cow_extent, but we don’t refresh the data fork mapping beforehand, which means that the xfs_bmap_trim_cow in that function queries the refcount btree about the wrong physical blocks and returns an inaccurate value in *shared.
If *shared is now false, the directio write proceeds with a stale data fork mapping. Fix this by querying the data fork mapping if the sequence counter changes across the ILOCK cycle.
Details
- Affected product:
- AlmaLinux 9.2 ESU , Amazon Linux 2 ELS , CentOS 8.4 ELS , CentOS 8.5 ELS , CentOS Stream 8 ELS , Debian 10 ELS , Oracle Linux 7 ELS , TuxCare 9.6 ESU , Ubuntu 16.04 ELS , Ubuntu 18.04 ELS , Ubuntu 20.04 ELS
- Affected packages:
- kernel-uek @ 5.4.17 (+11 more)
Fixes
KernelCare state
Live-patch status from KernelCare for each operating system.
| Operating system | Status | Covered kernels |
|---|---|---|
| AlmaLinux 10 | In Rollout |
50 kernels
|
| AlmaLinux 8 | Released |
117 kernels
|
| AlmaLinux 9 | Released |
117 kernels
|
| Amazon Linux 2 | Will Not Fix | — |
| Amazon Linux 2023 | Ready For Release | — |
| CentOS 8 | Released |
33 kernels
|
| CloudLinux OS 7h | Released |
113 kernels
|
| CloudLinux OS 8 | Released |
108 kernels
|
| Debian 12 | Planned | — |
| Debian 13 | Released |
12 kernels
|
| Oracle Linux 10 | In Rollout |
36 kernels
|
| Oracle Linux 8 UEK 6 | Planned | — |
| Oracle Linux 8 UEK 7 | Released |
104 kernels
|
| Oracle Linux 9 UEK 7 | Released |
104 kernels
|
| RHEL 10 | In Rollout |
49 kernels
|
| RHEL 8 | Released |
133 kernels
|
| RHEL 9 | Released |
115 kernels
|
| Rocky Linux 10 | In Rollout |
33 kernels
|
| Rocky Linux 8 | Released |
95 kernels
|
| Rocky Linux 9 | Released |
92 kernels
|
| Ubuntu 24.04 | Released |
48 kernels
|