]> 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:23:18 +0000 (08:23 -0700)
committerReed Loden <reed@reedloden.com>
Tue, 29 May 2012 15:23:18 +0000 (08:23 -0700)
[r=LpSolit a=LpSolit]

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

index d4ddfbd631f1d2fa13a72de525d97f95930ce92a..fcd2689596d23b08717eb955203c6b58835be88e 100755 (executable)
@@ -461,6 +461,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 a50f6bd32626bc5b6a4c41f155a226647ae42c5a..e20822bf571e37d2a4368522d0a00ce25f8e23d2 100644 (file)
@@ -40,6 +40,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>:
@@ -56,7 +59,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>