CVE-2026-43288

ext4: move ext4_percpu_param_init() before ext4_mb_init()

MEDIUM
5.5
CVSS Score
Published: May 8, 2026 at 01:11 PM UTC
Updated: September 14, 2026 at 12:34 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: ext4: move ext4_percpu_param_init() before ext4_mb_init() When running `kvm-xfstests -c ext4/1k -C 1 generic/383` with the `DOUBLE_CHECK` macro defined, the following panic is triggered: ================================================================== EXT4-fs error (device vdc): ext4_validate_block_bitmap:423: comm mount: bg 0: bad block bitmap checksum BUG: unable to handle page fault for address: ff110000fa2cc000 PGD 3e01067 P4D 3e02067 PUD 0 Oops: Oops: 0000 [#1] SMP NOPTI CPU: 0 UID: 0 PID: 2386 Comm: mount Tainted: G W 6.18.0-gba65a4e7120a-dirty #1152 PREEMPT(none) RIP: 0010:percpu_counter_add_batch+0x13/0xa0 Call Trace: <TASK> ext4_mark_group_bitmap_corrupted+0xcb/0xe0 ext4_validate_block_bitmap+0x2a1/0x2f0 ext4_read_block_bitmap+0x33/0x50 mb_group_bb_bitmap_alloc+0x33/0x80 ext4_mb_add_groupinfo+0x190/0x250 ext4_mb_init_backend+0x87/0x290 ext4_mb_init+0x456/0x640 __ext4_fill_super+0x1072/0x1680 ext4_fill_super+0xd3/0x280 get_tree_bdev_flags+0x132/0x1d0 vfs_get_tree+0x29/0xd0 vfs_cmd_create+0x59/0xe0 __do_sys_fsconfig+0x4f6/0x6b0 do_syscall_64+0x50/0x1f0 entry_SYSCALL_64_after_hwframe+0x76/0x7e ================================================================== This issue can be reproduced using the following commands: mkfs.ext4 -F -q -b 1024 /dev/sda 5G tune2fs -O quota,project /dev/sda mount /dev/sda /tmp/test With DOUBLE_CHECK defined, mb_group_bb_bitmap_alloc() reads and validates the block bitmap. When the validation fails, ext4_mark_group_bitmap_corrupted() attempts to update sbi->s_freeclusters_counter. However, this percpu_counter has not been initialized yet at this point, which leads to the panic described above. Fix this by moving the execution of ext4_percpu_param_init() to occur before ext4_mb_init(), ensuring the per-CPU counters are initialized before they are used.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

3.17 ≤ v < 6.1.1883.17 ≤ v < 6.12.753.17 ≤ v < 6.18.163.17 ≤ v < 6.19.63.17 ≤ v < 6.6.1283.17 ≤ v < 7.06.13 ≤ v < 6.18.166.19 ≤ v < 6.19.66.7 ≤ v < 6.12.757.0 rc17.0 rc27.0 rc37.0 rc47.0 rc57.0 rc67.0 rc7d5e03cbb0c88cd1be39f2adc37d602230045964b
Vendor states this is fixed in 0b3d80c56957862ba477ca0ce30c12cad9179c2b (fixed)
Vendor states this is fixed in 0d5fcb063cdabb9aeaa8554b7fedad2092c4150e (fixed)
Vendor states this is fixed in 270564513489d98b721a1e4a10017978d5213bff (fixed)
Vendor states this is fixed in 9e9fb259bcddf459a0168f4a964e979e500a68a5 (fixed)
Vendor states this is fixed in aec095f3cc6cf209effd93278ce35be27db81d73 (fixed)
Vendor states this is fixed in bf5b609524497c195f801cd5707252384aed8149 (fixed)
Vendor states this is fixed in 3.17 (unaffected)
Vendor states this is fixed in 6.1.188 (unaffected)
Vendor states this is fixed in 6.12.75 (unaffected)
Vendor states this is fixed in 6.18.16 (unaffected)
Vendor states this is fixed in 6.19.6 (unaffected)
Vendor states this is fixed in 6.6.128 (unaffected)
Vendor states this is fixed in 7.0 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-908

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card