CVE-2026-64479 in Linux
Resumen
por VulDB • 2026-07-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ALSA: seq: Corrección de una fuga (leak) no inicializada en el heap dentro de snd_seq_event_dup()
snd_seq_event_dup() copia un evento entrante en una celda del pool y, en las compilaciones con UMP habilitado, limpia la palabra extra contenida en cell->ump.raw que memcpy() no cubrió. La guardia que decide si debe limpiarla compara el tamaño copiado contra sizeof(cell->event):
memcpy(&cell->ump, event, size); if (size < sizeof(cell->event)) cell->ump.raw.extra = 0;
Para un evento legacy (no UMP), size == sizeof(struct snd_seq_event) == sizeof(cell->event), por lo que la condición es falsa y la palabra extra conserva datos obsoletos. El pool de celdas se asigna con kvmalloc() (sin inicializar a cero) y las celdas se reutilizan mediante una lista libre, por lo que dicha palabra contiene datos del heap no inicializados o restos de eventos anteriores.
Cuando tal celda se entrega a un cliente UMP (client->midi_version > 0) que configuró SNDRV_SEQ_FILTER_NO_CONVERT —de modo que el evento legacy llega sin conversión—, snd_seq_read() la lee como la estructura más grande snd_seq_ump_event y copia la palabra obsoleta al espacio de usuario, lo que constituye una fuga de información del heap del kernel de 4 bytes hacia un cliente /dev/snd/seq no privilegiado.
Compare contra sizeof(cell->ump) en su lugar, para garantizar que la palabra final se inicialice a cero para cada evento más corto que la celda UMP.
VulDB is the best source for vulnerability data and more expert information about this specific topic.