From: Alan T. DeKok Date: Tue, 2 Dec 2008 09:11:38 +0000 (+0100) Subject: Fix for CVE-2008-4474 X-Git-Tag: release_2_1_2~8 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=freeradius.git;a=commitdiff_plain;h=ba8b7be030e0f756f9c7a10182ef0ab73ca458d1 Fix for CVE-2008-4474 Dialup-admin uses tmp files insecurely. Since it isn't running in a default install, this shouldn't be a major problem. Patch from bug #605 --- diff --git a/dialup_admin/bin/clean_radacct b/dialup_admin/bin/clean_radacct index 7ff8211..76ac4c8 100755 --- a/dialup_admin/bin/clean_radacct +++ b/dialup_admin/bin/clean_radacct @@ -5,6 +5,7 @@ # Works with mysql and postgresql # use POSIX; +use File::Temp; $conf=shift||'/usr/local/dialup_admin/conf/admin.conf'; $back_days = 35; @@ -42,11 +43,10 @@ if (POSIX::strftime("%Y-%m-%d %T",localtime) eq $date){ $query = "DELETE FROM $sql_accounting_table WHERE AcctStopTime IS NULL AND AcctStartTime < '$date';"; print "$query\n"; -open TMP, ">/tmp/clean_radacct.query" - or die "Could not open tmp file\n"; -print TMP $query; -close TMP; -$command = "$sqlcmd -h$sql_server -u$sql_username $sql_password $sql_database 1 ); +$tmpfile="$tmpdir/sql.input"; # $verbose = 0; # diff --git a/dialup_admin/bin/monthly_tot_stats b/dialup_admin/bin/monthly_tot_stats index 69bddc6..e3e7ea4 100755 --- a/dialup_admin/bin/monthly_tot_stats +++ b/dialup_admin/bin/monthly_tot_stats @@ -1,5 +1,6 @@ #!/usr/bin/perl use POSIX; +use File::Temp; # Log in the mtotacct table aggregated accounting information for # each user spaning in one month period. @@ -51,14 +52,13 @@ $query2 = "INSERT INTO mtotacct (UserName,AcctDate,ConnNum,ConnTotDuration, AcctDate <= '$date_end' GROUP BY UserName,NASIPAddress;"; print "$query1\n"; print "$query2\n"; -open TMP, ">/tmp/tot_stats.query" - or die "Could not open tmp file\n"; -print TMP "ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF TZH:TZM';\n" if ($sql_type eq 'oracle'); -print TMP $query1; -print TMP $query2; -close TMP; -$command = "$sqlcmd -h $sql_server -u $sql_username $sql_password $sql_database /tmp/tot_stats.query" - or die "Could not open tmp file\n"; -print TMP "ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF TZH:TZM';\n" if ($sql_type eq 'oracle'); -print TMP $query1; -print TMP $query2; -close TMP; -$command = "$sqlcmd -h $sql_server -u $sql_username $sql_password $sql_database /tmp/truncate_radacct.query" - or die "Could not open tmp file\n"; -print TMP "ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF TZH:TZM';\n" if ($sql_type eq 'oracle'); -print TMP $query; -close TMP; -$command = "$sqlcmd -h$sql_server -u$sql_username $sql_password $sql_database