{"cve":{"cve_id":"CVE-2026-6428","is_kev":false,"kev_date_added":null,"kev_vendor_project":null,"kev_product":null,"kev_vulnerability_name":null,"kev_short_description":null,"kev_required_action":null,"kev_due_date":null,"kev_known_ransomware":null,"kev_notes":null,"kev_cwes":null,"epss_score":0.00244,"epss_percentile":0.15328,"epss_as_of":"2026-06-23","description":"SQL Injection in reports/catalogue_out.pl in Koha Community Koha through 22.11.37, 23.x, 24.x before 24.11.16, 25.05.x before 25.05.11, 25.11.x before 25.11.05, 26.05.x before 26.05.01, and 26.11.x before 26.11.00 allows an authenticated staff user with the Reports module flag to read arbitrary data from the Koha application database via the Filter URL parameter when the Criteria parameter matches /branchcode/.\n\n\n\nThe vulnerable sink in sub calculate concatenates the unmodified Filter request parameter directly into a LIKE clause of the auxiliary $strsth2 statement and executes it via DBI without bound parameters:\n\n\n\nmy $f = @$filters[0];\n$f =~ s/\\*/%/g;\n$strsth2 .= \" AND $column LIKE '$f' \";\n\n\n\nThis enables error-based SQL injection (e.g., via EXTRACTVALUE) and full read access to sensitive tables including borrowers (password hashes, 2FA secrets, PII), borrower_password_recovery, api_keys, and sessions.\n\n\n\nProof of concept (error-based, single request):\n\n\n\nGET /cgi-bin/koha/reports/catalogue_out.pl?do_it=1&output=screen&Limit=10&Criteria=branchcode&Filter=x'+AND+EXTRACTVALUE(1,CONCAT(0x7e,VERSION(),0x7c,USER(),0x7c,DATABASE(),0x7e))--+-\nCookie: CGISESSID=<LIBRARIAN_SESSION>\n\n\n\nThe response body contains the DBI exception leaking the MariaDB version, database user, client IP, and database name, after which arbitrary data can be paged out using LIMIT n,1 / SUBSTRING(...).\n\n\n\nThe vulnerable sink was introduced in commit 6bb77ae3e4 (2008-07-09); CVE-2015-4633 patched the same class in sibling files but did not generalise the fix to reports/catalogue_out.pl. Fixed in Koha 22.11.38, 24.11.16, 25.05.11, 25.11.05, 26.05.01, and 26.11.00 by replacing the raw concatenation with a parameterised placeholder.","published_at":"2026-06-13T16:34:10.326000Z","last_modified_at":null,"cvss_v3_score":7.6,"cvss_v3_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L","cvss_v3_severity":"HIGH","cvss_v4_score":5.6,"cvss_v4_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/AU:Y/V:C/U:Amber","cvss_v4_severity":"MEDIUM","ssvc_decision":null,"ssvc_exploitation":null,"ssvc_automatable":null,"ssvc_technical_impact":null,"cwes":["CWE-89"],"nvd_references":["https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42361","https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=199539","https://koha-community.org/security-releases/"],"vuln_status":null,"trending_score":null,"is_trending":false,"has_trended":false,"trended_number_one":false,"trending_peak_score":null,"trending_peak_rank":null,"started_trending_at":null,"trended_number_one_at":null,"summary_generated":null,"summary_generated_at":null,"summary_model":null,"created_at":"2026-06-24T00:09:39.878444Z","updated_at":"2026-06-28T23:31:01.784289Z"},"effective_severity":"MEDIUM","badges":[],"impact_analysis":[],"cvss_v3_decoded":{"version":"3.1","metrics":[{"metric":"AV","name":"Attack Vector","value":"N","value_label":"Network"},{"metric":"AC","name":"Attack Complexity","value":"L","value_label":"Low"},{"metric":"PR","name":"Privileges Required","value":"L","value_label":"Low"},{"metric":"UI","name":"User Interaction","value":"N","value_label":"None"},{"metric":"S","name":"Scope","value":"U","value_label":"Unchanged"},{"metric":"C","name":"Confidentiality","value":"H","value_label":"High"},{"metric":"I","name":"Integrity","value":"L","value_label":"Low"},{"metric":"A","name":"Availability","value":"L","value_label":"Low"}]},"cvss_v4_decoded":{"version":"4.0","metrics":[{"metric":"AV","name":"Attack Vector","value":"N","value_label":"Network"},{"metric":"AC","name":"Attack Complexity","value":"L","value_label":"Low"},{"metric":"AT","name":"Attack Requirements","value":"P","value_label":"Present"},{"metric":"PR","name":"Privileges Required","value":"L","value_label":"Low"},{"metric":"UI","name":"User Interaction","value":"N","value_label":"None"},{"metric":"VC","name":"Confidentiality (Vulnerable System)","value":"H","value_label":"High"},{"metric":"VI","name":"Integrity (Vulnerable System)","value":"L","value_label":"Low"},{"metric":"VA","name":"Availability (Vulnerable System)","value":"L","value_label":"Low"},{"metric":"SC","name":"Confidentiality (Subsequent System)","value":"N","value_label":"None"},{"metric":"SI","name":"Integrity (Subsequent System)","value":"N","value_label":"None"},{"metric":"SA","name":"Availability (Subsequent System)","value":"N","value_label":"None"},{"metric":"E","name":"E","value":"P","value_label":"Physical"},{"metric":"AU","name":"AU","value":"Y","value_label":"Y"},{"metric":"V","name":"V","value":"C","value_label":"Changed"},{"metric":"U","name":"U","value":"Amber","value_label":"Amber"}]},"affected":[{"vendor_slug":"koha-community","vendor_name":"Koha Community","product_slug":"koha","product_name":"Koha","version_start":"0","version_start_inclusive":true,"version_end":"22.11.38","version_end_inclusive":false,"cpe23_uri":"cve5:koha-community:koha:0:22.11.38"},{"vendor_slug":"koha-community","vendor_name":"Koha Community","product_slug":"koha","product_name":"Koha","version_start":"23.05.00","version_start_inclusive":true,"version_end":"23.11.15","version_end_inclusive":true,"cpe23_uri":"cve5:koha-community:koha:23.05.00:23.11.15"},{"vendor_slug":"koha-community","vendor_name":"Koha Community","product_slug":"koha","product_name":"Koha","version_start":"24.05.00","version_start_inclusive":true,"version_end":"24.11.16","version_end_inclusive":false,"cpe23_uri":"cve5:koha-community:koha:24.05.00:24.11.16"},{"vendor_slug":"koha-community","vendor_name":"Koha Community","product_slug":"koha","product_name":"Koha","version_start":"25.05.00","version_start_inclusive":true,"version_end":"25.05.11","version_end_inclusive":false,"cpe23_uri":"cve5:koha-community:koha:25.05.00:25.05.11"},{"vendor_slug":"koha-community","vendor_name":"Koha Community","product_slug":"koha","product_name":"Koha","version_start":"25.11.00","version_start_inclusive":true,"version_end":"25.11.05","version_end_inclusive":false,"cpe23_uri":"cve5:koha-community:koha:25.11.00:25.11.05"},{"vendor_slug":"koha-community","vendor_name":"Koha Community","product_slug":"koha","product_name":"Koha","version_start":"26.05.00","version_start_inclusive":true,"version_end":"26.05.01","version_end_inclusive":false,"cpe23_uri":"cve5:koha-community:koha:26.05.00:26.05.01"}],"exploit_refs":[],"news":[],"references":[{"url":"https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42361","source_type":"MISC","tags":[]},{"url":"https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=199539","source_type":"MISC","tags":[]},{"url":"https://koha-community.org/security-releases/","source_type":"MISC","tags":[]}],"timeline":[{"type":"published","at":"2026-06-13T16:34:10.326000Z","label":"CVE published","source":null},{"type":"cvss_changed","at":"2026-06-28T17:56:01.087206Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"cvss_changed","at":"2026-06-28T17:56:01.087206Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"cvss_changed","at":"2026-06-28T17:56:01.087206Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"cvss_changed","at":"2026-06-28T17:56:01.087206Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"cvss_changed","at":"2026-06-28T17:56:01.087206Z","label":"CVSS score revised","source":"cvelistv5"},{"type":"cvss_changed","at":"2026-06-28T17:56:01.087206Z","label":"CVSS score revised","source":"cvelistv5"}]}