[alsa-devel] [PATCH] ALSA: Adjust structure(snd_timer_tread) members to avoid 8 padding bytes
This patch is made to fix below CVE issue where 8 padding bytes are sent to user without being initialized. Structure members are adjusted to avoid 8 padding bytes.
CVE-2016-4569/CVE-2016-4578: The stack object tread has a total size of 32 bytes. Its field event and val both contain 4 bytes padding. These 8 bytes padding bytes are sent to user without being initialized.
Fix patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i... https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?h=fo...
These patches does memset on structure object to initialize 8 padding bytes, which can be skipped by adjusting structure members.
Signed-off-by: Manjeet Pawar manjeet.p@samsung.com Signed-off-by: Vaneet Narang v.narang@samsung.com --- include/uapi/sound/asound.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h index a45be6b..820c5a0 100644 --- a/include/uapi/sound/asound.h +++ b/include/uapi/sound/asound.h @@ -789,8 +789,8 @@ enum {
struct snd_timer_tread { int event; - struct timespec tstamp; unsigned int val; + struct timespec tstamp; };
/****************************************************************************
On Tue, 30 May 2017, Manjeet Pawar wrote:
This patch is made to fix below CVE issue where 8 padding bytes are sent to user without being initialized. Structure members are adjusted to avoid 8 padding bytes.
CVE-2016-4569/CVE-2016-4578: The stack object tread has a total size of 32 bytes. Its field event and val both contain 4 bytes padding. These 8 bytes padding bytes are sent to user without being initialized.
Fix patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?i... https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?h=fo...
These patches does memset on structure object to initialize 8 padding bytes, which can be skipped by adjusting structure members.
And by rearranging the struct members you break existing user space, which is a NONO. The struct has to stay as is.
Thanks,
tglx
participants (2)
-
Manjeet Pawar
-
Thomas Gleixner