Summary
SQL injection in Koha (CVE-2026-71288). Successful exploitation can lead to full system takeover. Exploitable via order_by.
Original description
The description as published by the source.
Koha's guided report builder (reports/guided_reports.pl) reads the order_by CGI parameter and, for each value, a dynamically-named {order}_ovalue parameter, and concatenates both directly into an SQL ORDER BY clause with no allowlist or validation: 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"; }. The resulting string is appended verbatim to the final query in C4::Reports::Guided ($query .= $orderby;) with no escaping. Since ORDER BY columns cannot be bound via prepared-statement placeholders, this requires an explicit allowlist, which does not exist. Any staff account with the low-privilege create_reports or execute_reports permission (commonly granted to non-admin library staff) can perform time-based blind SQL injection against the Koha database, which stores patron PII and staff/LDAP credentials.
Source: NIST National Vulnerability Database NVD GitHub Advisory
AI summary
Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.
Kohaのガイド付きレポートビルダーには、SQLインジェクションの脆弱性があります。この問題は、'order_by' CGIパラメータと関連のある{order}_ovalueパラメータを直接SQLクエリに未検証で組み込むために発生します。この攻撃は、低権限のライブラリスタッフによって実行され、Kohaデータベースに保管されている顧客情報やスタッフのLDAP資格情報にアクセスする可能性があります。
Kohaのガイド付きレポートビルダーでSQLインジェクションの脆弱性がある。
reports/guided_reports.plで発生。
任意のSQLクエリ実行により、データベース内の機密情報へアクセス可能。CVSSv3スコアは8.8。
order_byと{order}_ovalueパラメータにホワイトリストを導入し、入力値を適切にエスケープする。
一時的な対策として、レポート作成権限のあるユーザを制限する。
データベースへの不審なクエリログを監視し、予期しないアクセスを確認する。
References
- web github.com
- web github.com
- web nvd.nist.gov
- web github.com