CVE-2026-43288 in Linux
Сводка
по VulDB • 17.05.2026
В ядре Linux устранена следующая уязвимость:
ext4: переместить вызов ext4_percpu_param_init() до ext4_mb_init()
При запуске `kvm-xfstests -c ext4/1k -C 1 generic/383` с определенным макросом `DOUBLE_CHECK` возникает следующая паника:
================================================================== 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: 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 ==================================================================
Эту проблему можно воспроизвести с помощью следующих команд: mkfs.ext4 -F -q -b 1024 /dev/sda 5G tune2fs -O quota,project /dev/sda mount /dev/sda /tmp/test
При определенном макросе `DOUBLE_CHECK` функция `mb_group_bb_bitmap_alloc()` читает и проверяет битовую карту блоков. Если проверка не проходит, `ext4_mark_group_bitmap_corrupted()` пытается обновить `sbi->s_freeclusters_counter`. Однако на этом этапе `percpu_counter` еще не инициализирован, что приводит к описанной выше панике.
Исправление заключается в перемещении выполнения `ext4_percpu_param_init()` до `ext4_mb_init()`, что гарантирует инициализацию счетчиков для каждого процессора (per-CPU counters) до их использования.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.