]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 842038: (CVE-2013-0785) [SECURITY] XSS in show_bug.cgi when using an invalid...
authorFrédéric Buclin <LpSolit@gmail.com>
Tue, 19 Feb 2013 17:27:50 +0000 (18:27 +0100)
committerFrédéric Buclin <LpSolit@gmail.com>
Tue, 19 Feb 2013 17:27:50 +0000 (18:27 +0100)
r=glob a=LpSolit

Bugzilla/Template.pm
show_bug.cgi

index 663d85957d2abb68ba157dbc1dcf5db7b6fa090d..cd7507963d9b03e53a19b1f107c07084b50dd744 100644 (file)
@@ -140,6 +140,7 @@ sub get_format {
     return
     {
         'template'    => $template,
+        'format'      => $format,
         'extension'   => $ctype,
         'ctype'       => Bugzilla::Constants::contenttypes->{$ctype}
     };
index 7ea55e7320d17d0c228327a3fe7dd4eb90a4f7ff..a2bf57ada0534ffe931552388401797aa2833eb7 100755 (executable)
@@ -37,9 +37,11 @@ my $vars = {};
 
 my $user = Bugzilla->login();
 
+my $format = $template->get_format("bug/show", scalar $cgi->param('format'),
+                                   scalar $cgi->param('ctype'));
+
 # Editable, 'single' HTML bugs are treated slightly specially in a few places
-my $single = !$cgi->param('format')
-  && (!$cgi->param('ctype') || $cgi->param('ctype') eq 'html');
+my $single = !$format->{format} && $format->{extension} eq 'html';
 
 # If we don't have an ID, _AND_ we're only doing a single bug, then prompt
 if (!$cgi->param('id') && $single) {
@@ -49,9 +51,6 @@ if (!$cgi->param('id') && $single) {
     exit;
 }
 
-my $format = $template->get_format("bug/show", scalar $cgi->param('format'), 
-                                   scalar $cgi->param('ctype'));
-
 my @bugs;
 my %marks;
 
@@ -127,5 +126,5 @@ $vars->{'displayfields'} = \%displayfields;
 
 print $cgi->header($format->{'ctype'});
 
-$template->process("$format->{'template'}", $vars)
+$template->process($format->{'template'}, $vars)
   || ThrowTemplateError($template->error());