CVE-2023-53503
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
Oct 1, 2025
CISA due date
—
Cloudanix analysis
A bug in how the Linux kernel checks disk layout information for ext4 filesystems could let someone who can change the raw disk cause the whole computer to crash.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Allows a local process with block-device write access to manipulate an ext4 superblock so that ext4_get_group_info() receives an invalid group number, replacing a prior BUG_ON with an ext4_error and NULL return that propagates through callers and can still trigger a kernel crash or filesystem error handling path.
Why it matters to the business
Mounted ext4 filesystems on systems that have not been updated can be crashed by an administrator or any process that can write the underlying block device, producing unplanned downtime and potential data-integrity alerts until the kernel is replaced.
How an attack unfolds
An attacker obtains write access to the block device of a mounted ext4 volume, overwrites s_first_data_block with a large value, then induces the kernel to compute a block-group number for an allocation or other operation; the resulting underflow produces an out-of-range group that previously hit BUG_ON and now surfaces through the new error path, still resulting in denial of service.
How to fix it
Upgrade the running kernel to a version containing commit 100c0ad6c04597fefeaaba2bb1827cc015d95067 or the equivalent Debian package 5.10.46-1 (or later) for all affected releases; after reboot, verify the new kernel is active and remount any ext4 volumes.
How to confirm the fix worked
Confirm the running kernel contains the referenced commit or package version; optionally compile a test that exercises ext4_get_group_info callers with deliberately invalid group numbers and verify the function now returns NULL instead of BUGging.
Typical attack path
- Obtain write access to the ext4 block device (root or compromised privileged process)
- Directly overwrite the on-disk superblock field s_first_data_block with an oversized value
- Trigger any kernel code path that calls ext4_get_group_info with a block derived from that superblock value
- Observe kernel BUG, ext4 error, or resulting system instability
How to detect it
Search kernel logs (dmesg, journalctl) for ext4_error messages or stack traces mentioning ext4_get_group_info, invalid block group numbers, or superblock corruption around the time of a crash or mount; correlate with processes that had block-device write access.
- ext4_get_group_info
- s_first_data_block
- ext4_error.*group
What your security team should do
- Immediately schedule kernel upgrades on all systems running the listed vulnerable Debian or upstream kernels
- Restrict write access to block devices to the minimum set of administrative accounts
- Monitor ext4 error messages and kernel oops reports for signs of attempted superblock tampering
- Re-test high-value systems after patching to ensure ext4 mounts succeed without fallback paths being exercised
The record
In the Linux kernel, the following vulnerability has been resolved: ext4: allow ext4_get_group_info() to fail Previously, ext4_get_group_info() would treat an invalid group number as BUG(), since in theory it should never happen. However, if a malicious attaker (or fuzzer) modifies the superblock via the block device while it is the file system is mounted, it is possible for s_first_data_block to get set to a very large number. In that case, when calculating the block group of some block number (such as the starting block of a preallocation region), could result in an underflow and very large block group number. Then the BUG_ON check in ext4_get_group_info() would fire, resutling in a denial of service attack that can be triggered by root or someone with write access to the block device. For a quality of implementation perspective, it's best that even if the system administrator does something that they shouldn't, that it will not trigger a BUG. So instead of BUG'ing, ext4_get_group_info() will call ext4_error and return NULL. We also add fallback code in all of the callers of ext4_get_group_info() that it might NULL. Also, since ext4_get_group_info() was already borderline to be an inline function, un-inline it. The results in a next reduction of the compiled text size of ext4 by roughly 2k.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Linux | Kernel | 0 | 5.10.181 |
| Linux | Kernel | 3.11.0 | 5.10.181 |
Related vulnerabilities
- CVE-2026-23226 In the Linux kernel, the following vulnerability has been resolved: ksmbd: add chann_lock… Also affects Kernel
- CVE-2026-23225 In the Linux kernel, the following vulnerability has been resolved: sched/mmcid: Don't… Also affects Kernel
- CVE-2026-23230 In the Linux kernel, the following vulnerability has been resolved: smb: client: split… Also affects Kernel
- CVE-2026-23224 In the Linux kernel, the following vulnerability has been resolved: erofs: fix UAF issue… Also affects Kernel
- CVE-2026-23227 In the Linux kernel, the following vulnerability has been resolved: drm/exynos: vidi: use… Also affects Kernel
- CVE-2026-23223 In the Linux kernel, the following vulnerability has been resolved: xfs: fix UAF in… Also affects Kernel
- CVE-2026-23228 In the Linux kernel, the following vulnerability has been resolved: smb: server: fix leak… Also affects Kernel
- CVE-2026-23229 In the Linux kernel, the following vulnerability has been resolved: crypto: virtio - Add… Also affects Kernel