Fluent Bit: 5 nowych luk pozwala przejąć usługi w chmurze (CVE-2025-12969/70/72/77/78) - Security Bez Tabu

Fluent Bit: 5 nowych luk pozwala przejąć usługi w chmurze (CVE-2025-12969/70/72/77/78)

Wprowadzenie do problemu / definicja luki

Oligo Security opisało łańcuch pięciu podatności we Fluent Bit – popularnym, lekkim agencie telemetrii do logów/metryk/tras – który może prowadzić do przejęcia usług chmurowych. Luki obejmują m.in. path traversal z zapisem plików, przepełnienie bufora w wtyczce Docker, fałszowanie i korupcję tagów oraz bypass uwierzytelniania w protokole forward. Producent wydał poprawki w gałęziach 4.1.x i 4.0.x.


W skrócie

  • CVE-2025-12972 – brak sanityzacji tagów przy generowaniu nazw plików w out_filepath traversal i potencjalny RCE.
  • CVE-2025-12970stack buffer overflow w wejściu Docker przy ekstremalnie długich nazwach kontenerów → DoS/RCE.
  • CVE-2025-12978 – częściowe porównanie Tag_Keyspoofing tagów i obchodzenie filtrów/routingu.
  • CVE-2025-12977 – niewłaściwa walidacja wejścia dla tagów z pól użytkownika → korupcja logów/atak na wyjścia.
  • CVE-2025-12969bypass uwierzytelniania w in_forward, gdy ustawiono tylko Security.Users.
  • Wersje naprawcze: zaktualizuj do Fluent Bit 4.1.1 lub 4.0.12 (LTS) – poprawki backportowane.

Kontekst / historia / powiązania

Fluent Bit jest szeroko wykorzystywany (AI-labsy, bankowość, dostawcy chmury). To nie pierwsze problemy bezpieczeństwa: w 2024 r. głośna była luka CVE-2024-4323 „Linguistic Lumberjack” w wbudowanym serwerze HTTP (DoS/ujawnienie informacji/RCE). Nowy zestaw CVE uderza w inną powierzchnię ataku (tagowanie, plikowe wyjścia, wejścia Docker/forward/Splunk/Elasticsearch) i może być łączony w łańcuchy do pełnego przejęcia pipeline’u logów.


Analiza techniczna / szczegóły luki

1) CVE-2025-12972 – Path traversal w out_file

  • Błąd: tag (często kontrolowany przez klienta) jest używany do budowy nazwy pliku, gdy brak klucza File; brak filtracji ../.
  • Skutek: zapis/nadpisanie dowolnych ścieżek → tampering logów lub RCE (np. przez zapis pliku konfig./skryptu w wykonywalnej lokalizacji).
  • Dotyczy: konfiguracji z dynamicznymi tagami + out_file bez File.

2) CVE-2025-12970 – Przepełnienie bufora w wejściu Docker

  • Błąd: kopiowanie nazwy kontenera do stałego bufora 256B bez weryfikacji długości.
  • Skutek: DoS agenta lub RCE na hostowym procesie Fluent Bit.
  • Warunek: atakujący może utworzyć kontener / wpływać na jego nazwę.

3) CVE-2025-12978 – Częściowe dopasowanie Tag_Key

  • Błąd: porównanie tylko pierwszego znaku klucza pola JSON skonfigurowanego w Tag_Key (HTTP/Splunk/Elasticsearch).
  • Skutek: spoofing tagów, obchodzenie filtrów i przekierowanie strumieni.

4) CVE-2025-12977 – Niewłaściwa walidacja wejścia dla tagów

  • Błąd: tagi tworzone z pól użytkownika omijają sanityzację (wstrzyknięcia znaków sterujących, sekwencji).
  • Skutek: korupcja logów lub ataki na wyjścia downstream.

5) CVE-2025-12969 – Bypass uwierzytelniania w in_forward

  • Błąd: przy konfiguracji tylko Security.Users uwierzytelnianie nie jest egzekwowane; dopiero Shared_Key +/- Security.Users działa poprawnie.
  • Skutek: nieautoryzowana injekcja logów, flood alertów, zatruwanie telemetrii.

Wersje z poprawkami

Wydania 4.1.1 i 4.0.12 zawierają m.in. poprawki: „sanitize incoming Tag to prevent path traversal”, „fix tag_key lookup”, „Fix user authentication…”, „add helper for container name parsing”.


Praktyczne konsekwencje / ryzyko

  • Ukrywanie śladów: nadpisywanie/usuwanie artefaktów w logach oraz przekierowanie do „bezpiecznych” destination.
  • Eskalacja węzłowa: RCE w kontekście agenta → pivot do hosta/pods.
  • Ataki na procesy bezpieczeństwa: zalew fałszywych zdarzeń, zatruwanie źródeł danych SIEM/UEBA.
  • Wpływ na SLO/observability: DoS na agencie → utrata widoczności/monitoringu w krytycznych usługach.

Rekomendacje operacyjne / co zrobić teraz

1) Aktualizacje (priorytet krytyczny)

  • Produkcja: natychmiast 4.1.1 (gałąź 4.1) lub 4.0.12 (gałąź 4.0).
  • Dla obrazów AWS aws-for-fluent-bit: użyj wersji wskazanej przez AWS po migracji do 4.1.1.

2) Twarde zabezpieczenie konfiguracji

  • out_file: zawsze ustawiaj File (konkretna nazwa), nie opieraj nazwy pliku na tagu; rozważ separację katalogów i brak uprawnień do wykonywania.
  • Wejścia HTTP/Splunk/Elasticsearch: ogranicz Tag_Key lub wyłącz dynamiczne tagowanie od klienta; filtruj dopuszczalne wartości (regex allow-list).
  • in_forward: wymuś Shared_Key oraz – jeśli potrzebne – dopiero Security.Users dodatkowo; nigdy Security.Users solo.
  • in_docker: polityka nazw kontenerów (np. długość < 128, zestaw znaków), walidacja po stronie orkiestratora/CI.

3) Redukcja powierzchni ataku

  • Ogranicz dostęp sieciowy do portów wejściowych Fluent Bit (np. HTTP/forward/Splunk/Elasticsearch) do zaufanych CIDR/ServiceAccount/Namespace; w K8s egzekwuj NetworkPolicy.
  • Uruchamiaj agenta z least privilege (read-only FS, no-new-privileges, seccomp, ograniczone capabilities).
  • Oddziel dane/konfigurację w wolumenach nie-wykonywalnych.

4) Monitoring i detekcja (pod rękę dla SOC)

  • Szukaj tagów z ../, znakami sterującymi, nowymi liniami, lub podejrzanie długich nazw kontenerów.
  • Alertuj na nieoczekiwane tworzenie plików przez proces Fluent Bit poza ścieżką docelową (FIM/eBPF).
  • Telemetria: wzrost błędów routingu/tagowania, skoki 5xx w wejściu HTTP, nagłe przełączenia destination.
  • Logika korelacyjna: burst zdarzeń z in_forward bez poprawnego Shared_Key. (zob. opisy błędów i fixów)

5) Hardening łańcucha dostaw

  • „Pin” obrazy Fluent Bit do konkretnych tagów (4.1.1/4.0.12+) i digestów; skanuj SBOM; egzekwuj PodSecurityStandards.

Różnice / porównania z innymi przypadkami

  • vs. CVE-2024-4323 (Linguistic Lumberjack): tam rdzeniem był błąd parsera HTTP i pamięci w serwerze wbudowanym; obecny zestaw uderza w logikę tagów/IO oraz autoryzację i może zostać złączony w łańcuch prowadzący do trwałej manipulacji pipeline’em (m.in. przez out_file).

Podsumowanie / kluczowe wnioski

  • Pięć nowych CVE we Fluent Bit umożliwia RCE, DoS, spoofing tagów i bypass auth – realne ryzyko przejęcia i ukrycia działań atakującego.
  • Patch now: 4.1.1 / 4.0.12 + twarde zasady konfiguracji (File w out_file, Shared_Key w in_forward, ograniczenie Tag_Key).
  • Zaimplementuj monitoring anomalii tagów/plików i politykę nazw kontenerów.
  • Potraktuj agenta logów jako komponent wysokiego ryzyka, nie „neutralną rurę”.

Źródła / bibliografia

  1. SecurityWeek – omówienie 5 CVE, wersje naprawcze i wpływ na chmurę. (SecurityWeek)
  2. Oligo Security – raport techniczny z PoV, wektory ataku i porady. (Oligo Security)
  3. GitHub (Fluent Bit v4.1.1) – changelog zawierający poprawki: sanitacja tagów, fix tag_key, auth w in_forward, zmiany dla Docker. (GitHub)
  4. Fluent Bit – Release Notes v4.0.12 (gałąź 4.0.x z backportami poprawek). (fluentbit.io)
  5. The Hacker News – dodatkowy kontekst i wpływ (RCE, DoS, manipulacja tagami). (The Hacker News)