]> 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)
committerLucas Gass <lucas@bywatersolutions.com>
Mon, 30 Sep 2024 15:34:14 +0000 (15:34 +0000)
commit6b844169fd06b2954146a6eae41adcfffd1e31fb
tree9863f59653e212c832a567825c8b7b2aa2eb051c
parent0b1c2ba4b86f9aac615625f0456d81c2cf0ab4d7
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: Lucas Gass <lucas@bywatersolutions.com>
C4/Creators/Lib.pm
koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-edit-batch.tt