summaryrefslogtreecommitdiffstats
path: root/extensions/EditTable/Extension.pm
diff options
context:
space:
mode:
authorDylan Hardison <dylan@mozilla.com>2016-03-01 14:14:26 +0100
committerDylan Hardison <dylan@mozilla.com>2016-03-01 14:22:04 +0100
commit085c24c80c6a79f21aba768bf16955685dcc47b7 (patch)
tree5c23f767a81b5fcd64adb89d4f74d5e320a053ef /extensions/EditTable/Extension.pm
parente5b9aa6ef469adb5db2ff4b7575342bd79fd450a (diff)
downloadbugzilla-085c24c80c6a79f21aba768bf16955685dcc47b7.tar.gz
bugzilla-085c24c80c6a79f21aba768bf16955685dcc47b7.tar.xz
Bug 1252210 - AntiSpam configuration is vulnerable to CSRF and persistent XSS
Diffstat (limited to 'extensions/EditTable/Extension.pm')
-rw-r--r--extensions/EditTable/Extension.pm5
1 files changed, 5 insertions, 0 deletions
diff --git a/extensions/EditTable/Extension.pm b/extensions/EditTable/Extension.pm
index a10a30e57..675b3fe90 100644
--- a/extensions/EditTable/Extension.pm
+++ b/extensions/EditTable/Extension.pm
@@ -23,6 +23,7 @@ use base qw(Bugzilla::Extension);
use Bugzilla::Error;
use Bugzilla::Hook;
+use Bugzilla::Token;
use Bugzilla::Util qw(trick_taint);
use JSON;
use Storable qw(dclone);
@@ -86,6 +87,9 @@ sub page_before_template {
my $data = $input->{table_data};
my $edits = [];
if ($data) {
+ check_hash_token($input->{token}, [$table_name]);
+ delete_token($input->{token});
+
$data = from_json($data)->{data};
$edits = dclone($data);
eval {
@@ -170,6 +174,7 @@ sub page_before_template {
$vars->{table_name} = $table_name;
$vars->{blurb} = $table->{blurb};
+ $vars->{token} = issue_hash_token([$table_name]);
$vars->{table_data} = to_json({
fields => \@fields,
id_field => $id_field,