CVE intelligence and bounded remediation

CVE-2026-6428 — 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...

High CVSS 7.6

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/. The 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: my $f = @$filters[0]; $f =~ s/\*/%/g; $strsth2 .= " AND $column LIKE '$f' "; This 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. Proof of concept (error-based, single request): GET /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))--+- Cookie: CGISESSID=<LIBRARIAN_SESSION> The response body c…

Severity
High
CVSS
7.6 (3.1)
Published
2026-06-13
CISA KEV
Not currently listed
Ecosystem
software/application
Weaknesses
CWE-89

Affected products

No browser-safe affected-product rows are available.

Matched remediation archetype

SQL and data-query injection

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Trace request, message, file, and stored values into SQL, ORM query fragments, filters, sort expressions, and other data-query languages.
  • Inventory database roles, reachable schemas, multi-tenant boundaries, and whether stacked or administrative operations are enabled.
  • Check both direct queries and second-order use of previously stored values.

Remediate safely

  • Use parameterized queries or safe query builders for all values; map identifiers and operators through explicit allowlists.
  • Remove raw query concatenation and give the application account only the tables and operations it requires.
  • Update affected data-access components and add regression tests for query structure preservation with inert edge-case inputs.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.