]> git.baikalelectronics.ru Git - kernel.git/commit
sound: Prevent buffer overflow in OSS load_mixer_volumes
authorDan Rosenberg <drosenberg@vsecurity.com>
Sat, 25 Dec 2010 21:23:40 +0000 (16:23 -0500)
committerTakashi Iwai <tiwai@suse.de>
Thu, 30 Dec 2010 12:20:55 +0000 (13:20 +0100)
commit83bd82b785a293c41e25e016151f021b2e61c44b
tree69b5439b49368704465f797ff7ae147e3d81d451
parentc362cce17f7f80af4da52b1b484be0e9b599bafe
sound: Prevent buffer overflow in OSS load_mixer_volumes

The load_mixer_volumes() function, which can be triggered by
unprivileged users via the SOUND_MIXER_SETLEVELS ioctl, is vulnerable to
a buffer overflow.  Because the provided "name" argument isn't
guaranteed to be NULL terminated at the expected 32 bytes, it's possible
to overflow past the end of the last element in the mixer_vols array.
Further exploitation can result in an arbitrary kernel write (via
subsequent calls to load_mixer_volumes()) leading to privilege
escalation, or arbitrary kernel reads via get_mixer_levels().  In
addition, the strcmp() may leak bytes beyond the mixer_vols array.

Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/oss/soundcard.c