
CVE-2026-90781 के लिए स्टैंडअलोन रिप्रोड्यूसर: alsa-lib __snd_ctl_ascii_elem_id_parse() name= पार्सिंग (कोटेड और अनकोटेड) में 1-बाइट OOB राइट
CVE-2026-90781 के लिए स्टैंडअलोन C रिप्रोड्यूसर, जो alsa-lib के __snd_ctl_ascii_elem_id_parse() में name= (कोटेड और बिना कोटेड दोनों रूपों) को पार्स करते समय होने वाला 1-बाइट out-of-bounds राइट है।
src/control/ctlparse.c (v1.2.16.1 और उससे पहले के development HEAD) में:
char buf[64];
...
if (size < (int)sizeof(buf)) { // BUG: allows size == 64
*ptr++ = *str;
size++;
}
...
*ptr = '\0'; // writes buf[64] when size == 64
numid= पथ को पहले ही sizeof(buf) - 1 में ठीक कर दिया गया था; दो name= लूप ठीक नहीं किए गए थे।
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 — सटीक भेद्य और ठीक किए गए पार्सिंग लॉजिक को दर्शाता हैsrc/control/ctlparse.c1e27d63 (numid= पथ)