CVE-2026-105107
WysokieCVSS 7.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
Koha jest podatna na wstrzyknięcie SQL w raporcie najczęściej wypożyczanych pozycji. Skrypt reports/cat_issues_top.pl wkleja kontrolowane przez użytkownika parametry Criteria, Filter i Limit bezpośrednio do dynamicznego SQL, a Criteria nie jest weryfikowane względem listy dozwolonych wartości. Uwierzytelniony pracownik z uprawnieniem do modułu raportów może wstrzyknąć dowolny SQL i odczytać dowolne tabele dostępne dla użytkownika bazy Koha, w tym dane wypożyczających, klucze API i sesje.
Ocena ryzyka
Atakujący z uprawnieniami do raportów może wykraść hashe haseł, sekrety 2FA, dane osobowe oraz klucze API z bazy biblioteki. Prowadzi to do poważnego naruszenia poufności danych i możliwości dalszej eskalacji uprawnień.
Rekomendacja
Zaktualizuj Koha do wersji 24.11.19, 25.05.14, 25.11.08 lub 26.05.03 (albo gałęzi 26.11). Ogranicz uprawnienia do modułu raportów do niezbędnego minimum i przejrzyj logi pod kątem nietypowych zapytań.
Inne podatności w Koha
Zobacz wszystkie- CVE-2026-105106Wysokie
Koha jest podatna na wstrzyknięcie poleceń systemu operacyjnego w ścieżce usuwania zadań w Task Scheduler. Parametr jobid przekazywany do C4::Scheduler::remove_at_job nie jest walidowany, a Schedule::At::remove podstawia go do polecenia atrm bez cytowania i wykonuje przez system() z jednym argumentem, co uruchamia powłokę. Uwierzytelniony pracownik z uprawnieniem tools => schedule_tasks może wykonać dowolne polecenia systemowe jako użytkownik aplikacji Koha.
- CVE-2026-19780Wysokie
Podatność typu Remote Code Execution w Koha wynika z braku odpowiedniej walidacji ciągu znaków dostarczonego przez użytkownika przed przekazaniem go do funkcji eval w usłudze sieciowej nasłuchującej domyślnie na porcie TCP 8081. Uwierzytelniony atakujący może wykorzystać tę podatność do wykonania dowolnego kodu w kontekście konta usługi.
- CVE-2026-41921Średnie
Koha przed wersjami 26.05.02, 25.11.07 i 25.05.13 zawiera podatność na przechowywany XSS w obsłudze sugestii zakupu, która pozwala uwierzytelnionym pracownikom na wstrzykiwanie złośliwych skryptów poprzez przesłanie niesanityzowanych danych w operacji zapisu sugestii. Atakujący mogą dostarczyć spreparowane treści HTML lub skryptów w polach takich jak tytuł, autor, ISBN, kod wydawcy, miejsce, tytuł kolekcji, typ pozycji i notatka, które są przechowywane bez sanityzacji i później renderowane w szablonie listy sugestii, powodując wykonanie wstrzykniętych skryptów w przeglądarce każdego pracownika przeglądającego sugestie.
- CVE-2026-72610Średnie
Podatność na przechowywany SQL injection w Koha do wersji 24.11.17, 25.05.12, 25.11.06 i 26.05.01. Uwierzytelniony personel z uprawnieniem borrowers => edit_borrowers może spowodować czasową odmowę usługi, przechowując ładunek SQL w polu lang patrona, który jest wykonywany podczas drukowania slipu.
- CVE-2026-72609Wysokie
Podatność na wstrzykiwanie SQL w Koha (do wersji 24.11.17, 25.05.12, 25.11.06, 26.05.01) pozwala uwierzytelnionemu personelowi z uprawnieniem acquisition => order_receive na odczyt dowolnych danych z bazy przez parametr orderby w acqui/parcels.pl. Parametr jest przekazywany do C4::Acquisition::GetInvoices, gdzie kierunek sortowania jest konkatenowany do klauzuli ORDER BY bez walidacji. Atak jest ślepy (czasowy) i umożliwia wyodrębnienie danych osobowych czytelników, hashy haseł personelu i sekretów 2FA.
- CVE-2026-72608Średnie
Podatność na przechowywany SQL injection w Koha do wersji 24.11.17, 25.05.12, 25.11.06 i 26.05.01. Uwierzytelniony personel z uprawnieniem tools => label_creator może wykonać dowolny SQL przez pole image_name w układzie karty patrona, co pozwala na odczyt całej bazy danych, w tym danych osobowych i skrótów haseł.
- CVE-2026-72607Wysokie
Podatność na trwałe wstrzykiwanie SQL w Koha (do wersji 24.11.17, 25.05.12, 25.11.06, 26.05.01) pozwala uwierzytelnionemu personelowi z uprawnieniem tools => items_batchmod na odczyt dowolnych danych z bazy przez przechowywanie ładunku SQL w wartości agefield reguły automatycznej modyfikacji przedmiotów. Wartość jest przechowywana bez zmian i interpolowana do zapytania SQL w C4::Items::ToggleNewStatus podczas wykonywania zaplanowanego zadania cron. Atak umożliwia odczyt całej bazy Koha, w tym danych osobowych czytelników i hashy haseł personelu.
- CVE-2026-71288Wysokie
Kreator raportów w systemie Koha (reports/guided_reports.pl) odczytuje parametry CGI i bezpośrednio konkatenuje je do klauzuli SQL ORDER BY bez żadnej listy dozwolonych wartości ani walidacji. Ponieważ kolumny ORDER BY nie mogą być wiązane przez przygotowane zapytania, wymagana jest jawna lista dozwolonych, która nie istnieje.
- CVE-2026-70373Wysokie
Raport statystyk obiegu w Koha (reports/issues_stats.pl) buduje zapytanie obliczeniowe w podprogramie calculate, łącząc kilka kontrolowanych przez użytkownika parametrów żądania bezpośrednio w ciąg SQL. Parametry PeriodTypeSel, PeriodDaySel i PeriodMonthSel są interpolowane surowo do fragmentów równości w pojedynczych cudzysłowach i porównań funkcji, a sloty Filter oraz identyfikatory Line i Column są również interpolowane bez białej listy i bez wiązania parametrów.
- CVE-2026-70372Wysokie
Raport reports/bor_issues_top.pl w Koha buduje dynamiczne SQL w podprogramie calculate, łącząc kilka kontrolowanych przez użytkownika parametrów żądania bezpośrednio w ciąg zapytania. Uwierzytelniony pracownik z uprawnieniami do modułu raportów może wstrzyknąć dowolny SQL i odczytać dowolną tabelę dostępną dla użytkownika bazy danych Koha, w tym borrowers (hasła, sekrety dwuskładnikowe, dane osobowe), api_keys i sesje.
Oryginalny opis (angielski, źródło NVD)
Koha is vulnerable to SQL injection in the Most-circulated items report. The reports/cat_issues_top.pl script (sub calculate) concatenates the user-controlled Criteria, Filter, and Limit request parameters directly into dynamic SQL. Criteria is only prefix-normalized and never validated against an allow-list, so it is inserted verbatim into identifier positions (SELECT DISTINCTROW, GROUP BY, ORDER BY, and the main calculation query). Filter values are concatenated raw into single-quoted LIKE, BETWEEN, and comparison fragments. Limit is appended raw to a LIMIT clause. An authenticated staff user with the reports module permission (not requiring superlibrarian) can inject arbitrary SQL and read any table reachable by the Koha database user, including borrowers (userid and bcrypt password hashes, two-factor secrets, personal data), api_keys, and sessions. The issue is fixed in Koha 24.11.19, 25.05.14, 25.11.08, and 26.05.03, and in the 26.11 development branch. This is the unpatched twin of reports/bor_issues_top.pl (CVE-2026-70372).
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

