Koha-clms/misc
David Cook 196f9a2c55
Bug 40748: Check for HTTP URLs and skip shell when using system()
This change checks for HTTP(S) URLs and skips the shell when using
system() so that shell metacharacters aren't interpreted.

Test plan:
0. Apply the patch
1. Insert the following into the Babeltheque_url_update system preference:
$(whoami > /tmp/rce.log)
2. koha-shell kohadev
3. perl misc/cronjobs/social_data/update_social_data.pl
4. Note the script says the following:
$(whoami > /tmp/rce.log) is not a HTTP URL. Aborting.
5. Note also that /tmp/rce.log is not created
6. Change Babeltheque_url_update syspref to something like the following:
http://localhost:8080
7. perl misc/cronjobs/social_data/update_social_data.pl
8. Note that the wget succeeds but the bunzip2 fails (as expected) since
we haven't fetched a bzipped file
9. Try to create a payload that passes the HTTP URL test with shell
metacharacters and note that they're not interpetted and instead
just used as part of a URL string.

Signed-off-by: Jake Deery <jake.deery@openfifth.co.uk>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 7bb61b3114be14d2d18d03f855385d863f0bac60)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2025-09-25 16:45:22 +02:00
..
admin Bug 37682: Lazy-load modules for setters in koha-preferences tool 2024-08-27 12:14:23 +02:00
bin Bug 38382: Fresh connection when connexion CSRF token expires 2025-01-30 22:54:47 +01:00
cronjobs Bug 40748: Check for HTTP URLs and skip shell when using system() 2025-09-25 16:45:22 +02:00
devel Bug 37448: Add script to allow developers to quickly generate large amounts of data for development and testing 2025-04-22 23:01:38 +02:00
interface_customization Bug 23148: Replace Bridge icons with transparent PNG files 2020-07-20 16:16:37 +02:00
maintenance Bug 39301: pseudonymize_statistics.pl script generates too many background jobs 2025-08-08 16:58:29 +02:00
migration_tools Bug 37020: (follow-up): Remove memleak when not using Elasticsearch 2025-05-26 20:17:06 +02:00
release_notes Update release notes for 24.11.08 release 2025-08-26 15:20:18 +00:00
search_tools Bug 35345: Add --where option to rebuild_elasticsearch.pl 2024-04-22 12:39:26 +02:00
translator Bug 38900: Provide info about the problematic strings 2025-08-06 09:57:02 +00:00
workers Bug 34070: Display the 'jobs will be processed anyway' message from worker 2025-08-04 10:29:33 +02:00
add_date_fields_to_marc_records.pl Bug 23924: Reset the fields to add 2023-05-05 12:13:53 -03:00
add_statistics_borrowers_categorycode.pl Bug 34478: op =~ ^cud- in pl/pm 2024-03-01 10:56:11 +01:00
batchCompareMARCvsFrameworks.pl Bug 28617: Remove kohalib.pl and rely on PERL5LIB 2021-12-07 12:16:28 -10:00
batchDeleteUnusedSubfields.pl Bug 28617: Remove kohalib.pl and rely on PERL5LIB 2021-12-07 12:16:28 -10:00
batchImportMARCWithBiblionumbers.pl Bug 28617: Remove kohalib.pl and rely on PERL5LIB 2021-12-07 12:16:28 -10:00
batchRebuildBiblioTables.pl Bug 30813: Update TransformMarcToKoha to accept a hashref 2022-06-08 11:40:29 -03:00
batchRebuildItemsTables.pl Bug 31224: Update instances of metadata->record 2024-11-07 16:29:23 +01:00
batchRepairMissingBiblionumbers.pl Bug 29697: Replace GetMarcBiblio occurrences with $biblio->metadata->record 2022-07-22 15:24:11 -03:00
batchdeletebiblios.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
check_sysprefs.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
commit_file.pl Bug 15869: Change framework on overlay 2023-02-07 10:32:22 -03:00
export_borrowers.pl Bug 33339: Prevent Formula Injection (CSV Injection) in CSV files 2024-11-14 10:46:31 +01:00
export_records.pl Bug 36770: (QA follow-up) Tidy export_records.pl 2024-08-09 18:44:54 +02:00
exportauth.pl Bug 28617: Remove kohalib.pl and rely on PERL5LIB 2021-12-07 12:16:28 -10:00
import_patrons.pl Bug 34621: Tidy import_patrons.pl 2024-04-12 14:02:43 +02:00
koha-install-log Bug 28519: Put CGI::Session::Serialize::yamlxs in lib directory 2021-06-17 10:07:36 +02:00
link_bibs_to_authorities.pl Bug 29238: Cataloging cron jobs are not logged 2025-04-22 23:02:26 +02:00
load_yaml.pl Bug 29207: Getopt::Long should not ignore cases 2021-10-25 14:08:06 +02:00
mod_zebraqueue.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
process_ill_updates.pl Bug 35581: Koha::Illrequest -> Koha::ILL::Request 2024-04-22 08:57:45 +02:00
recreateIssueStatistics.pl Bug 34478: op =~ ^cud- in pl/pm - Manual revert changes to recreateIssueStatistics.pl 2024-03-01 10:57:15 +01:00
sax_parser_print.pl
…
sax_parser_test.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
sip_cli_emulator.pl Bug 40144: Get rid of `sip_cli_emulator.pl` warnings 2025-07-25 15:43:26 +02:00
stage_file.pl Bug 28617: Remove kohalib.pl and rely on PERL5LIB 2021-12-07 12:16:28 -10:00
z3950_responder.pl Bug 29207: Getopt::Long should not ignore cases 2021-10-25 14:08:06 +02:00