]> git.alsa-project.org Git - alsa-utils.git/commit
aplay: fix buffer overflow and tainted format string
authorMingjie Shen <shen497@purdue.edu>
Wed, 6 Dec 2023 21:09:58 +0000 (16:09 -0500)
committerJaroslav Kysela <perex@perex.cz>
Fri, 8 Dec 2023 19:00:13 +0000 (20:00 +0100)
commit4ce6a0a4af518700c3e44257af5f44ff24d58fc9
tree38a0e1531380fc0bbfbdc07203e6aa2213f490d7
parent004d085c675c56f866f008dbf712ee7503de5b27
aplay: fix buffer overflow and tainted format string

Prior this commit, memcpy from names[0] to format[] will overwrite if
strlen(names[0]) is greater than 1024. Also, the length of malloc()ed
names[channel] is insufficient, leading to another buffer overwriting
when calling sprintf(). Moreover, the format string of sprintf()
can be controlled by user input. An attacker can exploit this weakness
to crash the program, disclose information or even execute arbitrary
code.

Fix by allocating enough space for arrays and using constant expressions
as the format strings.

Fixes: https://github.com/alsa-project/alsa-utils/pull/246/
Signed-off-by: Mingjie Shen <shen497@purdue.edu>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
aplay/aplay.c