]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1439260: XSS in chart.cgi and report.cgi
authorDave Miller <justdave@bugzilla.org>
Thu, 29 Aug 2024 11:05:38 +0000 (07:05 -0400)
committerDave Miller <github@justdave.net>
Tue, 3 Sep 2024 14:39:49 +0000 (10:39 -0400)
chart.cgi
report.cgi

index 0df1c5b2b2eab6c2ed772cdbdd8fb02b266bd28d..fb1fc9c78a3da6b0f623b4849f60d07919ac7e86 100755 (executable)
--- a/chart.cgi
+++ b/chart.cgi
@@ -318,15 +318,11 @@ sub plot {
 
   my $format
     = $template->get_format("reports/chart", "", scalar($cgi->param('ctype')));
-  $format->{'ctype'} = 'text/html' if $cgi->param('debug');
 
   $cgi->set_dated_content_disp('inline', 'chart', $format->{extension});
   print $cgi->header($format->{'ctype'});
   disable_utf8() if ($format->{'ctype'} =~ /^image\//);
 
-  # Debugging PNGs is a pain; we need to be able to see the error messages
-  $vars->{'chart'}->dump() if $cgi->param('debug');
-
   $template->process($format->{'template'}, $vars)
     || ThrowTemplateError($template->error());
 }
@@ -362,10 +358,6 @@ sub view {
 
   print $cgi->header();
 
-  # If we have having problems with bad data, we can set debug=1 to dump
-  # the data structure.
-  $chart->dump() if $cgi->param('debug');
-
   $template->process("reports/create-chart.html.tmpl", $vars)
     || ThrowTemplateError($template->error());
 }
index f772b72fc205f351d89de621bf9ee39a8354a549..6aebe20dc2e81c90427f7bdfa8ac21f83fb72cba 100755 (executable)
@@ -312,13 +312,6 @@ $vars->{'height'}          = $height;
 $vars->{'queries'}         = $extra_data;
 $vars->{'saved_report_id'} = $cgi->param('saved_report_id');
 
-if ( $cgi->param('debug')
-  && Bugzilla->params->{debug_group}
-  && Bugzilla->user->in_group(Bugzilla->params->{debug_group}))
-{
-  $vars->{'debug'} = 1;
-}
-
 if ($action eq "wrap") {
 
   # So which template are we using? If action is "wrap", we will be using
@@ -367,24 +360,9 @@ else {
 my $format = $template->get_format("reports/report", $formatparam,
   scalar($cgi->param('ctype')));
 
-# If we get a template or CGI error, it comes out as HTML, which isn't valid
-# PNG data, and the browser just displays a "corrupt PNG" message. So, you can
-# set debug=1 to always get an HTML content-type, and view the error.
-$format->{'ctype'} = "text/html" if $cgi->param('debug');
-
 $cgi->set_dated_content_disp("inline", "report", $format->{extension});
 print $cgi->header($format->{'ctype'});
 
-# Problems with this CGI are often due to malformed data. Setting debug=1
-# prints out both data structures.
-if ($cgi->param('debug')) {
-  require Data::Dumper;
-  say "<pre>data hash:";
-  say html_quote(Data::Dumper::Dumper(%data));
-  say "\ndata array:";
-  say html_quote(Data::Dumper::Dumper(@image_data)) . "\n\n</pre>";
-}
-
 # All formats point to the same section of the documentation.
 $vars->{'doc_section'} = 'using/reports-and-charts.html#reports';