]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 472362: [SECURITY] Malicious attachments can change your user settings (user...
authorlpsolit%gmail.com <>
Mon, 2 Feb 2009 19:25:58 +0000 (19:25 +0000)
committerlpsolit%gmail.com <>
Mon, 2 Feb 2009 19:25:58 +0000 (19:25 +0000)
template/en/default/account/prefs/prefs.html.tmpl
userprefs.cgi

index 9cb66f7bd75d24287bcbd33572415f60b2cf193b..a753bffc5f42cfc2e59d177bb0e7fc3cf291f996 100644 (file)
@@ -83,6 +83,7 @@
 [% IF current_tab.saveable %]
   <form name="userprefsform" method="post" action="userprefs.cgi">
     <input type="hidden" name="tab" value="[% current_tab.name %]">
+    <input type="hidden" name="token" value="[% token FILTER html %]">
 [% END %]
 
 [% PROCESS "account/prefs/${current_tab.name}.html.tmpl" 
index 3dc68121ef074e9e5490eea8b1a23095ec2ee1a6..7e21dcb2cb1a2651b95a91a630dd6f44f3e3801d 100755 (executable)
@@ -443,6 +443,9 @@ trick_taint($current_tab_name);
 
 $vars->{'current_tab_name'} = $current_tab_name;
 
+my $token = $cgi->param('token');
+check_token_data($token, 'edit_user_prefs') if $cgi->param('dosave');
+
 # Do any saving, and then display the current tab.
 SWITCH: for ($current_tab_name) {
     /^account$/ && do {
@@ -473,6 +476,11 @@ SWITCH: for ($current_tab_name) {
                    { current_tab_name => $current_tab_name });
 }
 
+delete_token($token) if $cgi->param('dosave');
+if ($current_tab_name ne 'permissions') {
+    $vars->{'token'} = issue_session_token('edit_user_prefs');
+}
+
 # Generate and return the UI (HTML page) from the appropriate template.
 print $cgi->header();
 $template->process("account/prefs/prefs.html.tmpl", $vars)