CVE-2024-38306 in LinuxИнформация

Сводка

по VulDB • 12.06.2026

В ядре Linux устранена следующая уязвимость:

btrfs: защита folio::private при присоединении extent buffer folios

[ОШИБКА]
Начиная с версии v6.8, различные пользователи сообщают о редких сбоях (crash) ядра. Общим фактором для всех случаев являются сообщения об ошибках плохого состояния страницы (bad page status), например:

BUG: Bad page state in process kswapd0 pfn:d6e840 page: refcount:0 mapcount:0 mapping:000000007512f4f2 index:0x2796c2c7c pfn:0xd6e840 aops:btree_aops ino:1 flags: 0x17ffffe0000008(uptodate|node=0|zone=2|lastcpupid=0x3fffff) page_type: 0xffffffff() raw: 0017ffffe0000008 dead000000000100 dead000000000122 ffff88826d0be4c0 raw: 00000002796c2c7c 0000000000000000 00000000ffffffff 0000000000000000 page dumped because: non-NULL mapping

[ПРИЧИНА]
Коммит 09e6cef19c9f ("btrfs: refactor alloc_extent_buffer() to allocate-then-attach method") изменяет последовательность действий при выделении нового extent buffer.

Ранее мы всегда вызывали grab_extent_buffer() под блокировкой mapping->i_private_lock, чтобы обеспечить безопасность модификации folio::private (которая является указателем на extent buffer для стандартного размера сектора).

Это может привести к следующей гонке состояний (race condition):

Поток A пытается выделить extent buffer по адресу bytenr X, используя 4 страницы размером 4K. В то же время поток B пытается освободить страницу по адресу X + 4

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Резервировать

24.06.2024

Раскрытие

25.06.2024

Модерация

принято

Вход

VDB-269640

EPSS

0.00146

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!