CVE-2026-54597
WysokieCVSS 8.3Streszczenie
ITFlow, system dokumentacji IT, zgłoszeń i księgowości dla małych MSP, w wersjach przed 26.07 pozwala uwierzytelnionemu użytkownikowi z uprawnieniem zapisu module_support i dostępem do rekordu poświadczeń na czasową ślepą iniekcję SQL poprzez parametr expires w handlerze share_generate_link w agent/ajax.php. Parametr expires jest wstawiany bez cudzysłowów do wyrażenia MySQL INTERVAL, co pozwala na wykonanie warunkowych zapytań do bazy.
Ocena ryzyka
Atakujący może wydobyć hashe haseł, poświadczenia SMTP, klucze API, zaszyfrowane dane sejfu i metadane bazy danych, a po złamaniu haseł przejąć kontrolę administracyjną. Stanowi to poważne ryzyko dla poufności i integralności danych organizacji.
Rekomendacja
Zaktualizuj ITFlow do wersji 26.07 lub nowszej. Do czasu aktualizacji ogranicz uprawnienia module_support i dostęp do rekordów poświadczeń oraz monitoruj nietypowe opóźnienia odpowiedzi.
Inne podatności w ITFlow
Zobacz wszystkie- CVE-2026-54596Wysokie
W systemie ITFlow przed wersją 26.07 uwierzytelniony użytkownik z uprawnieniami Technika lub wyższymi może wstrzyknąć kod SQL poprzez parametr frequency w pliku agent/post/recurring_invoice.php. Parametr jest wprawdzie poddawany sanitizacji, ale wstawiany bez cudzysłowów do DATE_ADD, co pozwala na eskalację wstrzyknięcia i ujawnienie danych z bazy.
- CVE-2026-47755Średnie
ITFlow przed wersją 26.05 zawiera podatność, która pozwala uwierzytelnionemu agentowi o niskich uprawnieniach na odczytanie poświadczeń w postaci jawnego tekstu i sekretów TOTP należących do innego klienta. Wystarczy bezpośrednie żądanie do modalu edycji poświadczeń z dowolnym credential_id. Punkt końcowy nie wymusza zakresowania klienta ani autoryzacji na poziomie obiektu przed załadowaniem i odszyfrowaniem rekordu.
Oryginalny opis (angielski, źródło NVD)
ITFlow provides an IT documentation, ticketing and accounting system for small managed service providers. Prior to version 26.07, an authenticated user with module_support write permission and access to a credential record can perform time-based blind SQL injection through the expires parameter of the share_generate_link handler in agent/ajax.php. sanitizeInput applies string-context escaping, but expires is inserted unquoted into the item_expire_at MySQL INTERVAL expression, allowing a crafted expression and interval unit to execute conditional database queries whose results are inferred from response delays. This can expose password hashes, SMTP credentials, API keys, encrypted vault data, and database metadata and support administrative takeover after credential cracking. This issue is fixed in version 26.07.

