CVE-2025-39792 in LinuxИнформация

Сводка

по VulDB • 15.08.2026

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

dm: Всегда разделять BIO-операции записи в соответствии с ограничениями устройств со зональной адресацией (zoned)

Любая цель дискового менеджера (DM target), требующая эмуляции операций zone append, будет использовать механизм блокировки записи по зонам на уровне блочного подсистемы. В этом случае драйверы целей DM не должны разделять BIO с помощью функции dm_accept_partial_bio(), поскольку это может потенциально привести к взаимным блокировкам (deadlocks) при операциях заморозки очереди (queue freeze). Обычные операции записи, используемые для эмуляции операций zone append, также не могут быть разделены драйвером цели, так как это приведет к возврату недопустимого значения сектора записи через поле sector BIO.

Чтобы избежать такого неправильного разделения BIO в драйверах целей DM со зональной адресацией, необходимо обеспечить предварительное разбиение крупных BIO перед их передачей в функцию map() цели, тем самым гарантируя, что не будут превышены ограничения для отображенного устройства.

Драйверами целей dm-crypt и dm-flakey являются единственными драйверами, поддерживающими устройства со зональной адресацией и использующими функцию dm_accept_partial_bio().

В случае dm-crypt эта функция используется для разделения BIO в соответствии с внутренним ограничением max_write_size (которое будет устранено в другом патче). Однако, поскольку crypt_alloc_buffer() использует bioset, позволяющий хранить не более чем BIO_MAX_VECS (256) векторов в одном BIO, необходимо соблюдать ограничение на максимальное количество сегментов для устройства dm-crypt, которое по умолчанию равно BLK_MAX_SEGMENTS (128), и соответствующим образом разделять BIO-операции записи.

В случае dm-flakey эмуляция zone append не требуется, поэтому механизм блокировки записи по зонам блочного подсистемы не используется, а разделение BIO не требуется.

Измените функцию dm_zone_bio_needs_split() для использования вспомогательной функции уровня блочного подсистемы bio_needs_zone_write_plugging(), чтобы принудительно вызывать bio_split_to_limits() в dm_split_and_process_bio(). Это позволяет драйверам целей DM избегать использования dm_accept_partial_bio() для операций записи на устройствах DM со зональной адресацией.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Ответственный

Linux

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

16.04.2025

Раскрытие

12.09.2025

Модерация

принято

Вход

VDB-323791

EPSS

0.00156

KEV

Нет

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

Очень низкий

Источники

Do you need the next level of professionalism?

Upgrade your account now!