Package: mysql-dfsg Severity: grave Tags: security patch There is a security hole in the mysqlaccess script, as described here: http://www.vuxml.org/freebsd/ce109fd4-67f3-11d9-a9e7-0001020eed82.html
I've attached a patch taken from Ubuntu. -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.4.27 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) -- see shy jo
diff -Nur mysql-dfsg-4.0.23/scripts/mysqlaccess.sh
mysql-dfsg-4.0.23.new/scripts/mysqlaccess.sh
--- mysql-dfsg-4.0.23/scripts/mysqlaccess.sh 2005-01-18 13:45:56.363964096
+0100
+++ mysql-dfsg-4.0.23.new/scripts/mysqlaccess.sh 2005-01-18
13:46:29.920862672 +0100
@@ -3,6 +3,7 @@
package MySQLaccess;
#use strict;
use POSIX qw(tmpnam);
+use File::Temp qw/ tempfile tempdir /;
use Fcntl;
BEGIN {
@@ -32,7 +33,6 @@
$ACCESS_U_BCK = 'user_backup';
$ACCESS_D_BCK = 'db_backup';
$DIFF = '/usr/bin/diff';
- $TMP_PATH = '/tmp'; #path to writable tmp-directory
$MYSQLDUMP = '@bindir@/mysqldump';
#path to mysqldump executable
@@ -583,8 +583,6 @@
push(@MySQLaccess::Grant::Error,'not_found_mysql') if !(-x $MYSQL);
push(@MySQLaccess::Grant::Error,'not_found_diff') if !(-x $DIFF);
push(@MySQLaccess::Grant::Error,'not_found_mysqldump') if !(-x $MYSQLDUMP);
-push(@MySQLaccess::Grant::Error,'not_found_tmp') if !(-d $TMP_PATH);
-push(@MySQLaccess::Grant::Error,'write_err_tmp') if !(-w $TMP_PATH);
if (@MySQLaccess::Grant::Error) {
MySQLaccess::Report::Print_Error_Messages() ;
exit 0;
@@ -1783,9 +1781,10 @@
@before = sort(@before);
@after = sort(@after);
- $before = "$MySQLaccess::TMP_PATH/$MySQLaccess::script.before.$$";
- $after = "$MySQLaccess::TMP_PATH/$MySQLaccess::script.after.$$";
- #$after = "/tmp/t0";
+ $before = new File::Temp ( Template => "$MySQLaccess::script.XXXXXX",
SUFFIX => ".before" ) or
+ die "Cannot create temporary file: $!" ;
+ $after = new File::Temp ( Template => "$MySQLaccess::script.XXXXXX", SUFFIX
=> ".after" ) or
+ die "Cannot create temporary file: $!" ;
open(BEFORE,"> $before") ||
push(@MySQLaccess::Report::Errors,"Can't open temporary file $before for
writing");
open(AFTER,"> $after") ||
signature.asc
Description: Digital signature

