ufs: validate cylinder group metadata before caching it
CVE-2026-97926 is fixed in 12 products on 1 platform, first by DEBIAN-CVE-2026-97926, released September 29, 2026. It is not reported as exploited. Patch Radar priority: High.
In the Linux kernel, the following vulnerability has been resolved: ufs: validate cylinder group metadata before caching it ufs_read_cylinder() copies the cylinder group index and the rotor positions straight from the on-disk group and caches them without any check: ucpi->c_cgx = fs32_to_cpu(sb, ucg->cg_cgx); ucpi->c_rotor = fs32_to_cpu(sb, ucg->cg_rotor); ucpi->c_frotor = fs32_to_cpu(sb, ucg->cg_frotor); ucpi->c_irotor = fs32_to_cpu(sb, ucg->cg_irotor); They are then used as indices during allocation and free: - c_cgx indexes the cylinder summary array as UFS_SB(sb)->fs_cs(ucpi->c_cgx), so a value past s_ncg writes a 32 bit count outside the s_csp allocation. - c_frotor becomes a bitmap scan start, start = c_frotor >> 3, and then length = ((s_fpg + 7) >> 3) - start. A start beyond the block bitmap wraps the unsigned length to a huge value, so ubh_scanc() walks far past the cylinder group buffers. c_irotor drives the inode bitmap the same way. A crafted image can set any of these freely, turning an ordinary allocation into an out of bounds access. Reject a cylinder group whose recorded index does not match the group being read, or whose rotors fall outside the group, before the metadata is cached. Valid filesystems keep cg_cgx equal to the group number and the rotors within the group, so only malformed images are rejected.
Where it's fixed
| Product | Fixed in | Fix | Released |
|---|---|---|---|
| Linux | |||
| kernel-64kb · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-azure · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-default · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-default-base · sles 15.7 | 6.4.0-150700.53.90.1.150700.17.51.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-docs · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-livepatch-SLE15-SP7_Update_24 · sles 15.7 | 1-150700.15.3.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-obs-build · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-source · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-syms · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| kernel-zfcpdump · sles 15.7 | 6.4.0-150700.53.90.1 | SUSE-SU-2026:5091-1 | Nov 7, 2026 |
| linux · Debian 12.15 (bookworm) | 6.1.190-1 | DEBIAN-CVE-2026-97926 | Sep 29, 2026 |
| linux · Debian 13.5 (trixie) | 6.12.111-1 | DEBIAN-CVE-2026-97926 | Sep 29, 2026 |
| linux · Debian 14 | 7.2.7-1 | DEBIAN-CVE-2026-97926 | Sep 29, 2026 |
| linux-6.12 · Debian 12.15 (bookworm) | 6.12.111-1~deb12u1 | DEBIAN-CVE-2026-97926 | Sep 29, 2026 |
Patch Radar data is free to use with attribution. Terms and how to credit it.
Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.