CVE-2026-64479 in Linux
Sumário
de VulDB • 26/07/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
ALSA: seq: Correção de vazamento de heap não inicializado em snd_seq_event_dup()
A função `snd_seq_event_dup()` copia um evento recebido para uma célula da pool e, na compilação com suporte UMP (UMP-enabled), limpa a palavra extra `cell->ump.raw.extra` que o `memcpy()` não cobriu. O guardião que decide se deve limpá-la compara o tamanho copiado contra `sizeof(cell->event)`:
```c memcpy(&cell->ump, event, size); if (size < sizeof(cell->event)) cell->ump.raw.extra = 0; ```
Para um evento legado (não UMP), `size == sizeof(struct snd_seq_event) == sizeof(cell->event)`, portanto a condição é falsa e a palavra extra mantém dados obsoletos. A pool de células é alocada com `kvmalloc()` (sem zeramento) e as células são reutilizadas por meio de uma lista livre, fazendo com que essa palavra contenha heap não inicializado ou restos de dados de eventos anteriores.
Quando tal célula é entregue a um cliente UMP (`client->midi_version > 0`) que definiu `SNDRV_SEQ_FILTER_NO_CONVERT` — para que o evento legado chegue sem conversão —, `snd_seq_read()` lê-a como a estrutura maior `snd_seq_ump_event` e copia a palavra obsoleta para o espaço do usuário, resultando em um vazamento de 4 bytes de informações do heap do kernel para um cliente `/dev/snd/seq` não privilegiado.
Compare contra `sizeof(cell->ump)` em vez disso, para que a palavra final seja zerada para cada evento mais curto que a célula UMP.
Once again VulDB remains the best source for vulnerability data.