Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
PR:L reflects required authenticated staff account with reports permission; A:L as description confirms read impact, while write and DoS impact are plausible for SQL injection but not explicitly described.
Primary rating from Vendor (309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c).
CVSS VectorVendor: 309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c
Lifecycle Timeline
7DescriptionCVE.org
Koha's reports/issues_stats.pl (the circulation statistics report) builds its calculation query in sub calculate by concatenating several user-controlled request parameters directly into the SQL string. The PeriodTypeSel, PeriodDaySel, and PeriodMonthSel parameters are interpolated raw into single-quoted equality and function-comparison fragments, and the Filter slots plus the Line and Column identifiers are likewise interpolated with no whitelist and no placeholder binding. An authenticated staff user holding the reports module permission can inject arbitrary SQL and read any table reachable by the Koha database user, including borrowers (password hashes, two-factor secrets, personal data), api_keys, and sessions.
AnalysisAI
SQL injection in Koha's circulation statistics report (reports/issues_stats.pl) exposes the entire Koha database to authenticated staff members holding the reports module permission. The vulnerability arises from direct string concatenation of at least six user-controlled HTTP parameters - PeriodTypeSel, PeriodDaySel, PeriodMonthSel, multiple Filter slots, and the Line and Column report-dimension identifiers - into raw SQL with no parameterized binding or whitelist validation, enabling extraction of the borrowers table (password hashes, two-factor TOTP secrets, personal data), api_keys, and active session tokens. No public exploit has been identified at time of analysis and SSVC rates exploitation as none, but vendor-released patches are available across all four active Koha release branches.
Technical ContextAI
Koha is a widely deployed open-source Integrated Library System (ILS) written primarily in Perl and used by public, academic, and special libraries worldwide. The vulnerable endpoint is reports/issues_stats.pl, specifically the calculate subroutine responsible for constructing the circulation statistics query. Six distinct user-supplied HTTP request parameters are interpolated directly into single-quoted SQL equality and function-comparison fragments with no input sanitization, whitelist enforcement, or use of DBI placeholder binding - a textbook instance of CWE-89 (Improper Neutralization of Special Elements used in an SQL Command) stemming from the legacy Perl pattern of query construction via string concatenation. Because the Koha application database user holds broad schema privileges, a successful injection can reach any table the account can query, including the highly sensitive borrowers, api_keys, and sessions tables. Affected version ranges are confirmed by ENISA EUVD-2026-52675 and the Koha community Bugzilla report at bug 42735.
RemediationAI
Upgrade to the vendor-released fixed version for your branch: Koha 25.05.12 (release announcement at https://koha-community.org/koha-25-05-12-released/ and tarball at https://download.koha-community.org/koha-25.05.12.tar.gz), Koha 24.11.17, Koha 25.11.06, or Koha 26.05.01. Patched versions for the 24.11, 25.11, and 26.05 branches are stated in EUVD-2026-52675 but independently verified release announcements are not present in the provided references - consult https://koha-community.org for branch-specific release notes. If immediate upgrade is not feasible, restrict the reports module permission to the absolute minimum set of trusted staff accounts, as this permission is the sole exploitation gate and is not required by all staff roles; removing it from general staff eliminates the attack surface entirely at the cost of losing access to the reports module. Disabling or access-controlling the reports/issues_stats.pl endpoint at the web server layer is a more aggressive alternative that removes functionality but fully blocks exploitation. Network-layer WAF rules targeting SQL metacharacters in the named parameters provide only partial mitigation given the number of injectable parameters and should not substitute for patching.
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-52675
GHSA-wr9w-fmv5-77gm