]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 754672 - CSRF vulnerability in buglist.cgi allows possible unauthorized setting...
authorReed Loden <reed@reedloden.com>
Tue, 29 May 2012 15:22:31 +0000 (08:22 -0700)
committerReed Loden <reed@reedloden.com>
Tue, 29 May 2012 15:22:31 +0000 (08:22 -0700)
[r=LpSolit a=LpSolit]

buglist.cgi
template/en/default/search/knob.html.tmpl

index f0e77846492d6bb199af276dd7a006cf0ca0c1e0..f7498483a291a3539bf61f980b4cc713d189957d 100755 (executable)
@@ -434,6 +434,8 @@ if ($cmdtype eq "dorem") {
 elsif (($cmdtype eq "doit") && defined $cgi->param('remtype')) {
     if ($cgi->param('remtype') eq "asdefault") {
         $user = Bugzilla->login(LOGIN_REQUIRED);
+        my $token = $cgi->param('token');
+        check_hash_token($token, ['searchknob']);
         InsertNamedQuery(DEFAULT_QUERY_NAME, $buffer);
         $vars->{'message'} = "buglist_new_default_query";
     }
index 723825a3c2aa33fe1e8c384bf3ec020804d75145..e9e3daaf127fb797ca17c6bf729b2a462ce67e44 100644 (file)
@@ -23,6 +23,9 @@
    "Last Changed" => "Last Changed" } %]
 
 <input type="hidden" name="cmdtype" value="doit">
+[% IF user.id %]
+  <input type="hidden" name="token" value="[% issue_hash_token(['searchknob']) FILTER html %]">
+[% END %]
 
 <p>
   <label for="order">Sort results by</label>:
@@ -39,7 +42,7 @@
   <input type="submit" id="[% button_name FILTER html %]"
          value="[% button_name FILTER html %]">
   [% IF known_name %]
-    [%# We store known_name in case the user add a boolean chart. %]
+    [%# We store known_name in case the user adds a boolean chart. %]
     <input type="hidden" name="known_name" value="[% known_name FILTER html %]">
 
     [%# The name of the existing query will be passed to buglist.cgi. %]
   [% END %]
 </p>
 
-<p>
-  &nbsp;&nbsp;&nbsp;
-  <input type="checkbox" id="remasdefault"
-         name="remtype" value="asdefault">
-  <label for="remasdefault">
-    and remember these as my default search options
-  </label>
-</p>
+[% IF user.id %]
+  <p>
+    &nbsp;&nbsp;&nbsp;
+    <input type="checkbox" id="remasdefault"
+           name="remtype" value="asdefault">
+    <label for="remasdefault">
+      and remember these as my default search options
+    </label>
+  </p>
+[% END %]
         
 [% IF userdefaultquery %]
   <p>