
Reproduttore standalone per CVE-2026-90781: scrittura OOB di 1 byte in alsa-lib __snd_ctl_ascii_elem_id_parse() name= parsing (tra virgolette e senza virgolette)
Riproduttore C autonomo per CVE-2026-90781, una scrittura fuori dai limiti di 1 byte in __snd_ctl_ascii_elem_id_parse() di alsa-lib durante l'analisi di name= (sia in forma tra virgolette che senza).
In src/control/ctlparse.c (v1.2.16.1 e HEAD di sviluppo precedenti):
char buf[64];
...
if (size < (int)sizeof(buf)) { // BUG: allows size == 64
*ptr++ = *str;
size++;
}
...
*ptr = '\0'; // writes buf[64] when size == 64
Il percorso numid= era già stato corretto in sizeof(buf) - 1; i due cicli name= no.
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 — riproduce esattamente la logica di analisi vulnerabile e correttasrc/control/ctlparse.c1e27d63 (percorso numid=)