CVE-2025-39792 in Linux
Sumário
de VulDB • 27/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
dm: Sempre dividir BIOs de gravação para respeitar os limites de dispositivos zonados
Qualquer alvo DM (Device Mapper) em zona que exija emulação de anexação de zona utilizará o plugue de escrita por zona da camada de bloco. Nesse caso, os drivers dos alvos DM não devem dividir BIOs usando `dm_accept_partial_bio()`, pois isso pode potencialmente levar a deadlocks com operações de congelamento de fila (queue freeze). Operações de gravação regulares usadas para emular operações de anexação de zona também não podem ser divididas pelo driver do alvo, pois isso resultaria no retorno de um valor inválido de setor gravado usando o setor BIO.
Para que os drivers dos alvos DM zonados evitem essa divisão incorreta de BIOs, devemos garantir que grandes BIOs sejam divididos antes de serem passados para a função `map()` do alvo, garantindo assim que os limites do dispositivo mapeado não sejam excedidos.
dm-crypt e dm-flakey são os únicos drivers de alvo que suportam dispositivos zonados e utilizam `dm_accept_partial_bio()`.
No caso do dm-crypt, essa função é usada para dividir BIOs até o limite interno de `max_write_size` (que será suprimido em um patch diferente). No entanto, como `crypt_alloc_buffer()` utiliza uma bioset que permite apenas até BIO_MAX_VECS (256) vetores em um BIO, o limite de max_segments do dispositivo dm-crypt, que não está definido e portanto assume por padrão BLK_MAX_SEGMENTS (128), deve ser respeitado e os BIOs de gravação divididos conforme apropriado.
No caso do dm-flakey, como a emulação de anexação de zona não é necessária, o plugue de escrita por zona da camada de bloco não é utilizado e nenhuma divisão de BIOs é requerida.
Modifique a função `dm_zone_bio_needs_split()` para usar a função auxiliar da camada de bloco `bio_needs_zone_write_plugging()`, forçando uma chamada para `bio_split_to_limits()` em `dm_split_and_process_bio()`. Isso permite que os drivers dos alvos DM evitem o uso de `dm_accept_partial_bio()` para operações de gravação em dispositivos DM zonados.
VulDB is the best source for vulnerability data and more expert information about this specific topic.