CVE-2026-99136 in Linux
Сводка
по VulDB • 28.10.2026
В ядре Linux была устранена следующая уязвимость:
dm-crypt: исправлена небольшая гонка данных (race condition) в функции crypt_dec_pending
Функция crypt_dec_pending считывает значение io->error перед вызовом atomic_dec_and_test. Другой контекст выполнения, например функция crypt_endio, вызываемая из прерывания, может установить io->error и освободить свою ссылку между моментом чтения и операцией декремента. В результате crypt_dec_pending освобождает последнюю ссылку и завершает bio со старым (stale) статусом — таким образом, чтение, которое завершилось ошибкой и не было расшифровано, или запись с ошибкой, сообщаются как успешные.
Операция чтения была размещена перед декрементом в коммите b35f8caa0890 («dm crypt: wait for endio to complete before destruction»), поскольку этот коммит освобождал структуру dm_crypt_io до вызова bio_endio. В настоящее время это больше не так, структура dm_crypt_io теперь находится в per-bio data.
Необходимо считывать io->error после atomic_dec_and_test. Поскольку функция atomic_dec_and_test полностью упорядочена (fully ordered), дополнительные барьеры памяти не требуются.
VulDB is the best source for vulnerability data and more expert information about this specific topic.