Package: clamav-getfiles Version: 0.4-2 Priority: important Tags: security
The clamav-getfiles script is vulnerable to symlink attacks since it creates a temporary file in an insecure manner (the process PID is not suffient to avoid an attack) and does not check if the temporary file exists before using it. The attached patch is an attempt to fix this behaviour using the mktemp tool. Regards Javier
--- clamav-getfiles.in.orig 2005-08-05 17:30:09.000000000 +0200 +++ clamav-getfiles.in 2005-08-05 17:31:44.000000000 +0200 @@ -114,7 +114,8 @@ fi cd .. -OUTPUTFILE="/tmp/clamscanoutput.$$" +OUTPUTFILE=`mktemp -t clamscanoutput.XXXXXX` || { echo "$0: Cannot create temporary file" >&2; exit 1; } +trap " [ -f \"$OUTPUTFILE\" ] && /bin/rm -f -- \"$OUTPUTFILE\"" 0 1 2 3 13 15 if [ -x "$CLAMSCAN" ]; then [ "$CLAMAVTESTFILES" ] || CLAMAVTESTFILES="/usr/share/clamav-testfiles" @@ -125,13 +126,11 @@ cat $OUTPUTFILE if [ $RET -ne 1 ] ; then echo >&2 "An error ($RET) occured while scanning clamav test files." - rm $OUTPUTFILE exit 2 fi NUMBADFILES=`< $OUTPUTFILE grep 'ClamAV-Test-File FOUND' | wc -l` if [ $NUMBADFILES -ne $REFNUMBADFILES ]; then echo >&2 "Wrong number ($NUMBADFILES/$REFNUMBADFILES) of 'infected' files detected while scanning clamav test files" - rm $OUTPUTFILE exit 2 fi @@ -143,13 +142,11 @@ cat $OUTPUTFILE if [ $RET -ne 1 ] ; then echo >&2 "An error ($RET) occured while scanning the EICAR Anti-Virus test file." - rm $OUTPUTFILE exit 2 fi NUMBADFILES=`< $OUTPUTFILE grep 'Eicar-Test-Signature FOUND' | wc -l` if [ $NUMBADFILES -ne 1 ]; then echo >&2 "Wrong number ($NUMBADFILES/1) of 'infected' files detected while scanning EICAR Anti-Virus test file" - rm $OUTPUTFILE exit 2 fi else @@ -157,7 +154,6 @@ echo "You might want to install eicar-testfile or manually put eicar.com" echo "to $EICAR" fi - rm $OUTPUTFILE else echo 'No test scan with new databases done, no clamscan in path.' fi
signature.asc
Description: Digital signature