diff options
author | Ivan Kohler <ivan@freeside.biz> | 2014-09-15 20:44:48 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2014-09-15 20:44:48 -0700 |
commit | ed1f84b4e8f626245995ecda5afcf83092c153b2 (patch) | |
tree | 3f58bbef5fbf2502e65d29b37b5dbe537519e89d /rt/t/security/CVE-2011-5093-execute-code.t | |
parent | fe9ea9183e8a16616d6d04a7b5c7498d28e78248 (diff) |
RT 4.0.22
Diffstat (limited to 'rt/t/security/CVE-2011-5093-execute-code.t')
-rw-r--r-- | rt/t/security/CVE-2011-5093-execute-code.t | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/rt/t/security/CVE-2011-5093-execute-code.t b/rt/t/security/CVE-2011-5093-execute-code.t new file mode 100644 index 000000000..5124ab88b --- /dev/null +++ b/rt/t/security/CVE-2011-5093-execute-code.t @@ -0,0 +1,53 @@ +use strict; +use warnings; + +use RT::Test tests => undef; + +my $template = RT::Template->new( RT->SystemUser ); +my ($ok, $msg) = $template->Create( + Queue => 0, + Name => 'test', + Type => 'Simple', + Content => <<'.', +===Create-Ticket: testing +Queue: General +Subject: duplicate: { $Tickets{TOP}->Subject } +. +); +ok $ok, $msg; + +my $ticket = RT::Test->create_ticket( + Queue => 'General', + Subject => 'a ticket', +); +ok $ticket->id, "created ticket"; + +for my $type (qw(Simple Perl)) { + if ($template->Type ne $type) { + my ($ok, $msg) = $template->SetType($type); + ok $ok, $msg; + } + + require RT::Action::CreateTickets; + my $action = RT::Action::CreateTickets->new( + CurrentUser => RT->SystemUser, + TemplateObj => $template, + TicketObj => $ticket, + ); + $action->{TransactionObj} = $ticket->Transactions->First; + ok $action->Prepare, 'prepares'; + ok $action->Commit, 'commits'; + + my $new_ticket = RT::Test->last_ticket; + ok $new_ticket->id > $ticket->id, 'new ticket'; + + if ($type eq 'Perl') { + is $new_ticket->Subject, 'duplicate: a ticket', 'interpolated'; + isnt $new_ticket->Subject, 'duplicate: { $Tickets{TOP}->Subject }', 'interpolated'; + } else { + isnt $new_ticket->Subject, 'duplicate: a ticket', 'not interpolated'; + is $new_ticket->Subject, 'duplicate: { $Tickets{TOP}->Subject }', 'not interpolated'; + } +} + +done_testing; |