Luka oznaczona jako CVE-2026-44913 otrzymała ocenę 7.2 w skali CVSS (Common Vulnerability Scoring System — skala 0-10 oceniająca powagę luki), co klasyfikuje ją jako zagrożenie wysokie. Dotyczy ona Apache NiFi, popularnego narzędzia do automatyzacji przepływu danych między systemami. Polskie firmy z sektora finansowego, e-commerce czy analityki danych często wykorzystują NiFi do budowy potoków danych (data pipelines). Podatność umożliwia atakującemu wykonanie dowolnych komend SQL w bazie danych, co może prowadzić do kradzieży, modyfikacji lub usunięcia krytycznych informacji biznesowych.
Problem leży w komponencie o nazwie CaptureChangeMySQL, który służy do śledzenia zmian w bazach danych MySQL. Wersje od 1.2.0 do 2.9.0 1 nieprawidłowo obsługują nazwy tabel. Pozwala to na spreparowanie takiej nazwy, która w rzeczywistości zawiera dodatkowe, złośliwe polecenia SQL 2. Taki atak może pozostać niezauważony przez długi czas, ponieważ z perspektywy systemu monitoringu zapytania pochodzą z zaufanego źródła, jakim jest sam serwer NiFi.
TL;DR
- Produkt: Apache NiFi, procesor CaptureChangeMySQL.
- Podatne wersje: Od 1.2.0 do 2.9.0 1.
- Identyfikator luki: CVE-2026-44913 (CVSS 7.2, High).
- Wektor ataku: Wstrzyknięcie SQL (SQL Injection) poprzez spreparowaną nazwę tabeli w konfiguracji procesora 2.
- Zagrożenie: Zdalne wykonanie kodu SQL, co może prowadzić do nieautoryzowanego dostępu, modyfikacji lub usunięcia danych w bazie MySQL połączonej z NiFi.
- Kogo dotyczy: Organizacje w Polsce i na świecie, które używają Apache NiFi do przetwarzania danych z baz MySQL za pomocą procesora CaptureChangeMySQL.
- Pierwszy ruch reagowania: Weryfikacja użycia podatnego procesora w swoich przepływach danych i natychmiastowe zaplanowanie aktualizacji do wersji 2.10.0 lub nowszej 3.
Wektor ataku
Apache NiFi jest narzędziem typu ETL (Extract, Transform, Load), które pozwala na graficzne projektowanie przepływów danych. Jednym z jego komponentów jest procesor CaptureChangeMySQL. Jego zadaniem jest monitorowanie bazy danych MySQL i przechwytywanie wszelkich zmian (operacji INSERT, UPDATE, DELETE) w czasie rzeczywistym. Jest to mechanizm często stosowany w architekturach opartych o dane, na przykład do replikacji danych do hurtowni lub zasilania systemów analitycznych.
Luka CVE-2026-44913 wynika z niewystarczającego filtrowania i escapowania nazw tabel, które są podawane w konfiguracji tego procesora 1. Atakujący, który ma możliwość wpływania na konfigurację przepływu w NiFi (np. poprzez inne luki lub jako uprawniony, ale złośliwy użytkownik), może podać spreparowaną nazwę tabeli. Zamiast prostej nazwy, np. klienci, może wstrzyknąć konstrukcję typu:
klienci; UPDATE uzytkownicy SET haslo = ‘nowe_haslo’ WHERE id = 1; —`
Telemetria wskazuje, że mechanizmy zabezpieczające w NiFi mogą nie radzić sobie z taką konstrukcją. System może błędnie interpretować średnik jako koniec nazwy tabeli i wykonywać kolejne polecenie jako osobne zapytanie SQL. To klasyczny przykład ataku typu SQL Injection.
Co istotne, próby naprawy tego problemu były podejmowane już wcześniej. W wersji Apache NiFi 1.8.0 wprowadzono ręczne dodawanie cudzysłowów wokół nazw, co miało ograniczyć pole do ataku. Okazało się to jednak niewystarczające, ponieważ nie uwzględniono wszystkich możliwych scenariuszy obejścia zabezpieczeń 4. Dopiero wersja 2.10.0 wprowadza solidniejsze mechanizmy escapowania identyfikatorów 3.
Należy podkreślić, że podatność dotyczy wyłącznie tych instalacji, które aktywnie wykorzystują procesor CaptureChangeMySQL 5. Jeśli Twoja organizacja używa NiFi, ale nie korzysta z tego konkretnego komponentu, nie jest bezpośrednio zagrożona przez CVE-2026-44913.
Wskaźniki kompromitacji
Ta luka nie generuje typowych wskaźników kompromitacji (IoC — Indicators of Compromise), takich jak hashe plików czy adresy IP serwerów C2 (Command and Control). Detekcja musi opierać się na analizie logów i konfiguracji.
Kluczowe miejsca do sprawdzenia:
- Logi serwera bazy danych MySQL: Należy szukać nietypowych lub złożonych zapytań SQL pochodzących z konta serwisowego używanego przez Apache NiFi. Szczególną uwagę należy zwrócić na zapytania zawierające operacje DDL (np.
DROP TABLE,ALTER TABLE) lub masowe operacje DML (np.UPDATEbez klauzuliWHERE), które nie pasują do normalnego profilu działania aplikacji. - Historia konfiguracji przepływów w NiFi: Jeśli system wersjonowania przepływów (np. NiFi Registry) jest używany, audyt jego historii może ujawnić moment wprowadzenia złośliwej konfiguracji do procesora
CaptureChangeMySQL.
Co zrobić w 24-48h
Rekomendowane podejście zakłada natychmiastową weryfikację i przygotowanie planu działania. Poniższe kroki nie zastępują pełnej konsultacji bezpieczeństwa, ale stanowią pierwszy, niezbędny ruch.
-
Identyfikacja zasobów: Zidentyfikuj wszystkie instancje Apache NiFi w swojej infrastrukturze. Sprawdź każdy przepływ danych (dataflow) pod kątem użycia procesora
CaptureChangeMySQL. -
Weryfikacja wersji: Dla każdej instancji używającej podatnego procesora, potwierdź jej wersję. Jeśli jest to wersja z zakresu od 1.2.0 do 2.9.0, system jest podatny 1.
-
Aktualizacja (działanie priorytetowe): Najskuteczniejszą metodą mitigacji jest aktualizacja Apache NiFi do wersji 2.10.0 lub nowszej 3. Zawiera ona poprawione mechanizmy walidacji i escapowania, które mogą uniemożliwić ten wektor ataku. W polskich firmach, gdzie NiFi często stanowi kręgosłup systemów analityki biznesowej, aktualizacja musi być starannie zaplanowana i przetestowana.
-
Mitigacja tymczasowa (jeśli aktualizacja jest niemożliwa): Jeśli natychmiastowa aktualizacja nie wchodzi w grę, należy rozważyć tymczasowe wyłączenie przepływów danych korzystających z procesora
CaptureChangeMySQL. Alternatywnie, można zaostrzyć uprawnienia konta bazodanowego używanego przez NiFi, ograniczając je wyłącznie do niezbędnego minimum (zasada najmniejszych uprawnień). Powinno ono mieć dostęp tylko do tych tabel i operacji, które są absolutnie wymagane. -
Audyt po fakcie: Niezależnie od podjętych kroków, zalecamy przeprowadzenie audytu logów bazy danych MySQL pod kątem podejrzanej aktywności w przeszłości. Kompromitacja mogła nastąpić przed wykryciem luki. Dla polskich podmiotów przetwarzających dane osobowe, potencjalny wyciek lub modyfikacja danych może rodzić obowiązki wynikające z RODO (Rozporządzenie o Ochronie Danych Osobowych), w tym obowiązek zgłoszenia naruszenia do Urzędu Ochrony Danych Osobowych.
Źródła
Zobacz też
- CVE-2026-10184: SQL Injection w systemie danych medycznych
- CVE-2026-11435: Zdalne wykonanie zapytań SQL w Jinher OA
- Krytyczna luka SQL Injection w GeekyBot (CVE-2026-57679)
Przypisy
-
Luka CVE-2026-44913 dotyczy niewłaściwego escapowania nazw tabel baz danych w procesorze CaptureChangeMySQL, który jest częścią Apache NiFi w wersjach od 1.2.0 do 2.9.0. — nvd.nist.gov › CVE 2026 44913 ↩ ↩2 ↩3 ↩4
-
Luka ta umożliwia wstrzykiwanie komend SQL poprzez spreparowane nazewnictwo. — nvd.nist.gov › CVE 2026 44913 ↩ ↩2
-
Zalecanym środkiem zaradczym jest aktualizacja do Apache NiFi 2.10.0, która zawiera bardziej solidne escapowanie identyfikatorów. — nvd.nist.gov › CVE 2026 44913 ↩ ↩2 ↩3
-
Ręcznie dodane granice cytowania w Apache NiFi 1.8.0 zawęziły zakres potencjalnych opcji wstrzykiwania, ale nie objęły dodatkowych strategii. — nvd.nist.gov › CVE 2026 44913 ↩
-
Instalacje Apache NiFi, które nie używają procesora CaptureChangeMySQL, nie są podatne na tę lukę. — nvd.nist.gov › CVE 2026 44913 ↩
// Komentarze ...
Dodaj komentarz