]> git.koha-community.org Git - koha.git/commit
Bug 37720: Prevent XSS in label creator
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 28 Aug 2024 10:18:06 +0000 (12:18 +0200)
committerKatrin Fischer <katrin.fischer@bsz-bw.de>
Fri, 18 Oct 2024 10:07:51 +0000 (12:07 +0200)
commita05d1d9be475b65ec2a8cd000f8ccbbd08cefa15
tree726850635c49cd7eea72e2944287904783ff2502
parent4b727f38f8380d670feab8aea0761df74757fab0
Bug 37720: Prevent XSS in label creator

Because labels/label-edit-batch.pl fills a DataTable with things that include
a link created by C4/Creators/Lib.pm, it outputs them with the $raw filter,
so HTML in author/title/callnumber is executed in the label batch editor.
While we wait for a fix that moves the link creation into the template and
out of C4, encoding HTML in Lib.pm for the bits going into the link, and
switching from $raw to the html filter for the rest of the things, will at
least get rid of the XSS.

Test plan:
 1. Without this patch, but with the patch from bug 37654 so you don't get
    alert()s in batch import, download attachment 170675 [details]
 2. Cataloging - Stage records for import - browse to the downloaded file -
    Upload file - when the upload finishes Stage for import - when staging
    finishes View batch (get alert()s if you didn't apply bug 37654) - Import
    this batch into the catalog
 3. Once the import finishes, Cataloging - Manage staged records
 4. In the row for your import, in the # Items column, click "(Create label
    batch)"
 5. In the "Label batch #n created" message, click the link to the batch #
 6. Because the batch includes a call number with an open <script>, you'll
    get XSS alert()s and then one about something going wrong while loading
    the table, with only one of the two records showing in the batch editor
 7. Apply patch, restart_all
 8. Cataloging - Label creator - Manage Label batches
 9. In the row for your batch, click Edit
10. You will see both labels, with their attempts at XSS visible as text
    rather than being interpreted as HTML

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Phil Ringnalda <phil@chetcolibrary.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
C4/Creators/Lib.pm
koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-edit-batch.tt