Package: alsa-utils Version: 1.0.8-1 Priority: important Tags: security upstream
While doing a security audit review of Debian packages for unsafe usage of /tmp I've found this in alsa-utils' alsaconf: CARDID_DB=/var/tmp/alsaconf.cards if [ ! -r $CARDID_DB ]; then use_modinfo_db=1 fi (...) if [ $use_modinfo_db = 1 ]; then xecho "Building card database.." build_card_db $CARDID_DB fi build_card_db is a function in alsaconf that starts like this: build_card_db () { MODDIR=/lib/modules/`uname -r` last_driver="" echo -n > $1 (...) This code is prone to a race condition since the CARDID_DB file is not created inmediately, but created later on. Since alsaconf can only be used by root this means that a rogue local user could have root overwrite any files through a symlink attack by exploiting that race condition. Notice, also, that the test for CARDID_DB is [ -r ] when it should really be [ -e ] I'm not sure how to best fix this (since CARDID_DB seems to be created under /var/tmp so it's not removed after reboots) but it looks like it should, at least, check if the file exists and create it inmediately afterwards. Also, the script should use the 'noclobber' and -e options for additional safety. Regards Javier
signature.asc
Description: Digital signature