Koha's reports/borissuestop.pl builds dynamic SQL in sub calculate by concatenating several user-controlled request parameters directly into the query string. The Criteria parameter is only normalized by a table-name prefix and is never whitelisted, landing verbatim in identifier positions (SELECT DISTINCTROW, GROUP BY, ORDER BY); Filter values are concatenated raw into single-quoted LIKE, BETWEEN, and comparison fragments, and the Limit parameter is appended raw to a LIMIT clause. 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.
{
"unresolved_ranges": [
{
"extracted_events": [
{
"introduced": "25.05.00"
},
{
"fixed": "25.05.12"
}
],
"source": "AFFECTED_FIELD"
}
],
"cwe_ids": [
"CWE-89"
],
"cna_assigner": "TuranSec",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70372.json"
}{
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "24.11.17"
},
{
"introduced": "25.11.00"
},
{
"fixed": "25.11.06"
},
{
"introduced": "26.05.00"
},
{
"fixed": "26.05.01"
}
],
"source": "AFFECTED_FIELD"
}