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.
| Vendor | Product | Versions |
|---|---|---|
| linux | linux kernel | 3c68d44a2b49a0ac9165faa9c191e1e618c8a8d5, 3c68d44a2b49a0ac9165faa9c191e1e618c8a8d5, 3c68d44a2b49a0ac9165faa9c191e1e618c8a8d5, 3c68d44a2b49a0ac9165faa9c191e1e618c8a8d5, 3c68d44a2b49a0ac9165faa9c191e1e618c8a8d5, 3c68d44a2b49a0ac9165faa9c191e1e618c8a8d5, 3c68d44a2b49a0ac9165faa9c191e1e618c8a8d5, 4.11 |
Downstream vendors/products affected by this vulnerability
| Vendor | Product | Source | Confidence |
|---|---|---|---|
| red hat | red hat enterprise linux | cert_advisory | 90% |
Classified vulnerability as HIGH severity with CVSS 8.8, identified CWE-362 (race condition), added local-attack tag, and corrected affected versions to 6.12.95/6.18.38/7.1.3/7.2-rc3
Added CWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization) which is the appropriate classification for this race condition vulnerability involving ILOCK cycling and stale mappings.
Initial creation