
Reproductor independiente para CVE-2026-90781: escritura OOB de 1 byte en alsa-lib __snd_ctl_ascii_elem_id_parse() name= parsing (entre comillas y sin comillas)
Reproductor independiente en C para CVE-2026-90781, una escritura fuera de límites de 1 byte en __snd_ctl_ascii_elem_id_parse() de alsa-lib al analizar name= (tanto en forma entrecomillada como sin comillas).
En src/control/ctlparse.c (v1.2.16.1 y HEAD de desarrollo anteriores):
char buf[64];
...
if (size < (int)sizeof(buf)) { // BUG: allows size == 64
*ptr++ = *str;
size++;
}
...
*ptr = '\0'; // writes buf[64] when size == 64
La ruta de numid= ya había sido corregida a sizeof(buf) - 1; los dos bucles de name= no lo fueron.
gcc -o reproducer reproducer.c
./reproducer
# With AddressSanitizer (recommended to observe the OOB write):
gcc -fsanitize=address -g -o reproducer reproducer.c
./reproducer
WRITE of size 1 at ... Stack right redzone
reproducer.c — replica la lógica de análisis exacta, tanto vulnerable como corregidasrc/control/ctlparse.c1e27d63 (ruta numid=)