Bug 561797: (CVE-2010-0180) [SECURITY] checksetup.pl with $use_suexec=1 sets

localconfig as world readable
r=timello, a=mkanat


git-svn-id: svn://10.0.0.236/branches/BUGZILLA-3_6-BRANCH@260560 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mkanat%bugzilla.org
2010-06-24 17:10:19 +00:00
parent e52f117c0a
commit 342b624d27
2 changed files with 15 additions and 1 deletions

View File

@@ -1 +1 @@
7110
7111

View File

@@ -75,6 +75,13 @@ sub FILESYSTEM {
my $skinsdir = bz_locations()->{'skinsdir'};
my $localconfig = bz_locations()->{'localconfig'};
# We want to set the permissions the same for all localconfig files
# across all PROJECTs, so we do something special with $localconfig,
# lower down in the permissions section.
if ($ENV{PROJECT}) {
$localconfig =~ s/\.\Q$ENV{PROJECT}\E$//;
}
my $ws_group = Bugzilla->localconfig->{'webservergroup'};
my $use_suexec = Bugzilla->localconfig->{'use_suexec'};
@@ -92,6 +99,9 @@ sub FILESYSTEM {
# Writeable by the web server.
my $ws_writeable = $ws_group ? 0660 : 0666;
# Script-readable files that should not be world-readable under suexec.
my $script_readable = $use_suexec ? 0640 : $ws_readable;
# DIRECTORIES
# Readable by the web server.
my $ws_dir_readable = ($ws_group && !$use_suexec) ? 0750 : 0755;
@@ -129,6 +139,10 @@ sub FILESYSTEM {
'migrate.pl' => { perms => $owner_executable },
'install-module.pl' => { perms => $owner_executable },
# Set the permissions for localconfig the same across all
# PROJECTs.
$localconfig => { perms => $script_readable },
"$localconfig.*" => { perms => $script_readable },
"$localconfig.old" => { perms => $owner_readable },
'contrib/README' => { perms => $owner_readable },