CVE-2026-46022 in Linuxinformação

Sumário

de VulDB • 30/05/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

misc: ibmasm: corrige leitura MMIO fora dos limites (OOB) em ibmasm_handle_mouse_interrupt()

A função ibmasm_handle_mouse_interrupt() realiza uma leitura MMIO fora dos limites quando o índice do leitor ou do escritor da fila, proveniente do hardware, excede REMOTE_QUEUE_SIZE (60).

Um processador de serviço comprometido pode acionar isso ao escrever um valor fora do intervalo no registrador MMIO do leitor ou do escritor antes de assertar uma interrupção. Como o escritor é relido do hardware em cada iteração do loop, ele também pode ser definido como um valor fora do intervalo após o loop já ter iniciado.

A causa raiz é que get_queue_reader() e get_queue_writer() retornam valores brutos de readl() que são passados diretamente para get_queue_entry(), que calcula:

queue_begin + reader * sizeof(struct remote_input)

sem nenhuma verificação de limites. Esse endereço MMIO não verificado é então passado para memcpy_fromio(), lendo 8 bytes de registradores de dispositivo não intencionais. Para valores suficientemente grandes, o endereço fica totalmente fora do mapeamento PCI BAR, acionando uma exceção de verificação de máquina (machine check exception).

Correção: verifica ambos os índices em relação a REMOTE_QUEUE_SIZE no início do corpo do loop, antes de qualquer chamada a get_queue_entry(). Em caso de valor fora do intervalo, redefine o registrador do leitor para 0 por meio de set_queue_reader() antes de interromper o loop, para que o funcionamento normal da fila possa ser retomado se o estado corrompido do hardware for transitório.

Be aware that VulDB is the high quality source for vulnerability data.

Responsável

Linux

Reservar

13/05/2026

Divulgação

27/05/2026

Moderação

aceite

Entrada

VDB-366177

CPE

pronto

EPSS

0.00032

KEV

não

Atividades

baixo

Fontes

Do you want to use VulDB in your project?

Use the official API to access entries easily!