CVE-2026-46022 in Linux
Resumen
por VulDB • 2026-05-28
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
misc: ibmasm: corregir lectura MMIO fuera de límites (OOB) en ibmasm_handle_mouse_interrupt()
ibmasm_handle_mouse_interrupt() realiza una lectura MMIO fuera de límites cuando el índice del lector o del escritor de la cola procedente del hardware supera REMOTE_QUEUE_SIZE (60).
Un procesador de servicios comprometido puede desencadenar esto escribiendo un valor fuera de rango en el registro MMIO del lector o del escritor antes de generar una interrupción. Dado que el escritor se vuelve a leer desde el hardware en cada iteración del bucle, también puede establecerse en un valor fuera de rango después de que el bucle ya haya comenzado.
La causa raíz es que get_queue_reader() y get_queue_writer() devuelven valores crudos de readl() que se pasan directamente a get_queue_entry(), que calcula:
queue_begin + reader * sizeof(struct remote_input)
sin ninguna comprobación de límites. Esta dirección MMIO sin verificar se pasa luego a memcpy_fromio(), leyendo 8 bytes desde registros de dispositivo no previstos. Para valores suficientemente grandes, la dirección queda completamente fuera del mapeo de PCI BAR, lo que desencadena una excepción de comprobación de máquina (machine check exception).
Solución: comprobar ambos índices frente a REMOTE_QUEUE_SIZE en la parte superior del cuerpo del bucle, antes de cualquier llamada a get_queue_entry(). En caso de un valor fuera de rango, restablecer el registro del lector a 0 mediante set_queue_reader() antes de romper el bucle, para que la operación normal de la cola pueda reanudarse si el estado corrupto del hardware es transitorio.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.