Bugzilla – Attachment 181332 Details for
Bug 38969
Reflected XSS vulnerability in tags
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[24.05] Bug 38969: Prevent XSS in tags/review.pl and Prevent JS error when adding tags with quote at the OPAC
2405-Bug-38969-Prevent-XSS-in-tagsreviewpl-and-Pre.patch (text/plain), 3.37 KB, created by
Wainui Witika-Park
on 2025-04-23 00:48:40 UTC
(
hide
)
Description:
[24.05] Bug 38969: Prevent XSS in tags/review.pl and Prevent JS error when adding tags with quote at the OPAC
Filename:
MIME Type:
Creator:
Wainui Witika-Park
Created:
2025-04-23 00:48:40 UTC
Size:
3.37 KB
patch
obsolete
>From 5812e8c593fb9ca07114a2cabe25f69660576848 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Mon, 27 Jan 2025 09:56:10 +0100 >Subject: [PATCH] [24.05] Bug 38969: Prevent XSS in tags/review.pl and Prevent > JS error when adding tags with quote at the OPAC > >Signed-off-by: Baptiste Wojtkowski <baptiste.wojtkowski@biblibre.com> >Signed-off-by: David Cook <dcook@prosentient.com.au> >Signed-off-by: wainuiwitikapark <wainuiwitikapark@catalyst.net.nz> >--- > koha-tmpl/intranet-tmpl/prog/js/pages/tags-review.js | 2 +- > opac/opac-tags.pl | 7 ++++--- > tags/review.pl | 3 ++- > 3 files changed, 7 insertions(+), 5 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/js/pages/tags-review.js b/koha-tmpl/intranet-tmpl/prog/js/pages/tags-review.js >index af4c719ec88..37c8e3c3bf4 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/pages/tags-review.js >+++ b/koha-tmpl/intranet-tmpl/prog/js/pages/tags-review.js >@@ -151,7 +151,7 @@ $(document).ready(function() { > $(event.target).text( __("Testing...") ).prop('disabled', true); > $.ajax(Object.assign({}, {...review_ajax_params, type: "GET"}, { > data: { >- tag: $('#test').val(), >+ tag: escape_str($("#test").val()), > op: 'test', > }, > success: success_test_call // success_reject >diff --git a/opac/opac-tags.pl b/opac/opac-tags.pl >index fb10be50290..65b625fcc57 100755 >--- a/opac/opac-tags.pl >+++ b/opac/opac-tags.pl >@@ -200,7 +200,8 @@ if ($is_ajax) { > my $i = 1; > foreach (@errors) { > my $key = (keys %$_)[0]; >- $err_string .= "\n\t\t KOHA.Tags.tag_message.$key(\"" . $_->{$key} . '")'; >+ ( my $quote_escaped = $_->{$key} ) =~ s|"|\\"|g; >+ $err_string .= sprintf qq{\n\t\t KOHA.Tags.tag_message.%s("%s")}, $key, $quote_escaped; > if($i < scalar @errors){ $err_string .= ","; } > $i++; > } >@@ -217,7 +218,8 @@ if ($is_ajax) { > foreach (@{$bibResult->{errors}}) { > $js_bibres .= "," if ($i); > my $key = (keys %$_)[0]; >- $js_bibres .= "\n\t\t\t KOHA.Tags.tag_message.$key(\"" . $_->{$key} . '")'; >+ ( my $quote_escaped = $_->{$key} ) =~ s|"|\\"|g; >+ $js_bibres .= sprintf qq{\n\t\t\t KOHA.Tags.tag_message.%s("%s")}, $key, $quote_escaped; > $i++; > } > $js_bibres .= "\n\t\t]\n\t}"; >@@ -377,4 +379,3 @@ response = { > }; > > =cut >- >diff --git a/tags/review.pl b/tags/review.pl >index 6df5bc5b5fb..eb61e553561 100755 >--- a/tags/review.pl >+++ b/tags/review.pl >@@ -23,7 +23,7 @@ use Modern::Perl; > use POSIX qw( ceil ); > use CGI qw ( -utf8 ); > use CGI::Cookie; # need to check cookies before having CGI parse the POST request >-use URI::Escape qw( uri_escape_utf8 ); >+use URI::Escape qw( uri_escape_utf8 uri_unescape ); > use C4::Auth qw( check_cookie_auth get_template_and_user ); > use C4::Context; > use C4::Output qw( output_with_http_headers is_ajax pagination_bar output_html_with_http_headers ); >@@ -60,6 +60,7 @@ if (is_ajax()) { > my $op = $input->param('op') || q{}; > my $tag = $input->param('tag'); > if ($op eq 'test') { >+ $tag = uri_unescape($tag); > my $check = is_approved($tag); > $js_reply = ( $check >= 1 ? 'success' : $check <= -1 ? 'failure' : 'indeterminate' ) . "_test('".uri_escape_utf8($tag)."');\n"; > } >-- >2.39.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 38969
:
177148
|
177159
|
177160
|
179553
|
179554
|
179676
|
179708
|
179709
|
179710
|
181329
|
181330
|
181331
| 181332 |
181464