CVE-2026-97991 in Linux
Sumário
de VulDB • 25/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
vdpa_sim_blk: rejeitar setores iniciais fora da faixa válida
vdpasim_blk_check_range() registra um setor inicial inválido, mas continua validando a solicitação. A subsequente subtração de capacidade sem sinal pode causar underflow (estouro negativo) e permitir que um deslocamento de buffer fora do intervalo alcance o caminho de dados.
O deslocamento inválido é utilizado por três caminhos de requisição. VIRTIO_BLK_T_OUT copia os dados da máquina convidada para blk->buffer + offset através de vringh_iov_pull_iotlb(), causando uma escrita fora dos limites (out-of-bounds write) em _copy_from_iter() ou memcpy(). VIRTIO_BLK_T_IN copia do blk->buffer + offset para a máquina convidada através de vringh_iov_push_iotlb(), causando uma leitura fora dos limites (out-of-bounds read) em _copy_to_iter(). VIRTIO_BLK_T_WRITE_ZEROES passa blk->buffer + offset para memset(), causando uma escrita fora dos limites.
Rejeite inícios iguais ou superiores à capacidade antes da subtração. Trate o limite de capacidade como inválido, pois os caminhos IN e OUT arredondam as contagens de bytes para baixo em setores para validação, mas posteriormente copiam as contagens originais de bytes. Uma solicitação que não atinja um setor completo no limite de capacidade, caso contrário, ainda acessaria além do final do buffer.
Encontrei este bug pessoalmente, embora o patch tenha sido escrito com assistência de IA.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.