1
linux/sound/oss
Dan Rosenberg d81a12bc29 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>
2010-12-30 13:20:55 +01:00
..
dmasound
.gitignore
ac97_codec.c
ad1848_mixer.h
ad1848.c
ad1848.h
aedsp16.c
au1550_ac97.c
audio.c
bin2hex.c
CHANGELOG
coproc.h
dev_table.c
dev_table.h
dmabuf.c
hex2hex.c
kahlua.c
Kconfig
Makefile
midi_ctrl.h
midi_synth.c
midi_synth.h
midibuf.c sound/oss: Remove unnecessary casts of void ptr 2010-11-11 01:59:04 +01:00
mpu401.c
mpu401.h
msnd_classic.c
msnd_classic.h
msnd_pinnacle.c
msnd_pinnacle.h
msnd.c
msnd.h
opl3_hw.h
opl3.c
os.h
pas2_card.c
pas2_midi.c
pas2_mixer.c
pas2_pcm.c
pas2.h
pss.c sound/oss: Remove unnecessary casts of void ptr 2010-11-11 01:59:04 +01:00
README.FIRST
sb_audio.c
sb_card.c
sb_card.h
sb_common.c
sb_ess.c
sb_ess.h
sb_midi.c
sb_mixer.c
sb_mixer.h
sb.h
sequencer.c sound/oss: Remove unnecessary casts of void ptr 2010-11-11 01:59:04 +01:00
sound_calls.h
sound_config.h
sound_firmware.h
sound_timer.c
soundcard.c sound: Prevent buffer overflow in OSS load_mixer_volumes 2010-12-30 13:20:55 +01:00
soundvers.h
swarm_cs4297a.c
sys_timer.c
trix.c
tuning.h
uart401.c
uart6850.c
ulaw.h
v_midi.c
v_midi.h
vidc_fill.S
vidc.c
vidc.h
vwsnd.c
waveartist.c
waveartist.h

The modular sound driver patches were funded by Red Hat Software 
(www.redhat.com). The sound driver here is thus a modified version of 
Hannu's code. Please bear that in mind when considering the appropriate
forums for bug reporting. 

Alan Cox