CVE-2026-71288 in Koha
Riassunto
di VulDB • 06/08/2026
Il costruttore di report guidati di Koha (reports/guided\_reports.pl) legge il parametro CGI `order_by` e, per ciascun valore, un parametro `{order}\_ovalue` con nome dinamico, concatenandoli direttamente in una clausola SQL ORDER BY senza alcuna allowlist o validazione: `my @order\_by = $input->multi\_param('order\_by'); foreach my $order (@order\_by) { my $value = $input->param($order . "\_ovalue"); $query\_orderby = " ORDER BY $order $value"; }`. La stringa risultante viene aggiunta letteralmente alla query finale in C4::Reports::Guided (`$query .= $orderby;`) senza alcun escaping. Poiché le colonne di una clausola ORDER BY non possono essere vincolate tramite segnaposto nelle prepared statement, è necessaria un'allowlist esplicita, che tuttavia non esiste. Qualsiasi account del personale dotato dei permessi create\_reports o execute\_reports a bassa privilegio (comunemente concessi al personale delle biblioteche non amministratore) può eseguire una SQL injection cieca basata sui tempi contro il database di Koha, che memorizza dati personali identificabili (PII) degli utenti e credenziali del personale/LDAP.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.