Przejdź do treści
INDEKS ANALIZ BREACHROAD / NOTA TECHNICZNA

Fleet CVE-2026-54245: jeden host może otworzyć drogę do całej floty

SQL injection w integracji Fleet z Okta i przewidywalne adresy paczek iOS pokazują dwa błędy granic zaufania platformy endpoint management.

MATERIAŁ PUBLICZNY
AUTOR
/ CEO Breachroad · OSCP · PNPT
PUBLIKACJA
20 sierpnia 2026
CZAS CZYTANIA
17 min czytania
TEMAT
Podatności i CVE
Fleet CVE-2026-54245: jeden host może otworzyć drogę do całej floty

20 sierpnia GitHub Advisory Database opublikowała i zweryfikowała dwa istotne komunikaty projektu Fleet. Najpoważniejszy, CVE-2026-54245, to SQL injection w integracji Okta Conditional Access. Atakujący kontrolujący jeden zapisany host może odczytać lub zmienić dane bazy Fleet, pozyskać token sesji globalnego administratora, a potem użyć legalnej funkcji uruchamiania skryptów na zarządzanych urządzeniach. Drugi błąd dotyczy nieautoryzowanego pobierania wewnętrznych aplikacji iOS przez przewidywalne identyfikatory.

Te problemy mają różną wagę, ale wspólną lekcję: agent endpoint management i urządzenie zarządzane nie są zaufanym źródłem tylko dlatego, że zostały enrolowane. Host może być przejęty, użytkownik może mieć lokalne uprawnienia administracyjne, a dane raportowane przez agenta muszą być traktowane jak wejście zewnętrzne.

CVE-2026-54245: od wartości hosta do globalnego administratora

Podatność dotyczy Fleet Premium z włączoną integracją Okta Conditional Access. Ścieżka obsługująca integrację wykorzystuje wartość dostarczoną przez host w zapytaniu do bazy bez prawidłowej parametryzacji. Wartość jest zapisywana verbatim, więc strona posiadająca kontrolę nad jednym enrolled host może wpływać na późniejsze zapytanie SQL.

Według advisory skuteczny atak może ujawnić dowolne dane bazy, w tym poświadczenia i tokeny sesji. Token globalnego administratora można odtworzyć, a administrator ma możliwość wykonywania skryptów na hostach. To tworzy łańcuch: niski poziom zaufania jednego endpointu → baza control plane → sesja uprzywilejowana → legalne zdalne wykonanie na całej flocie.

Ocena CVSS 4.0 wynosi 7,6. Liczba może wyglądać niżej niż wpływ organizacyjny, ponieważ wektor wymaga kontroli nad już enrolowanym hostem oraz konkretnej konfiguracji Okta. W środowisku obejmującym tysiące laptopów taki warunek nie jest egzotyczny. EDR i MDM projektuje się właśnie z założeniem, że część urządzeń może zostać utracona.

Kto jest podatny i jaka wersja naprawia problem

Fleet wskazuje wersje przed 4.86.2 jako podatne na CVE-2026-54245. Poprawka znajduje się w 4.86.2. Instancje bez Okta Conditional Access nie mają osiągalnej tej konkretnej ścieżki. Nie jest to jednak argument za odłożeniem aktualizacji, jeżeli funkcja może zostać włączona później lub konfiguracja nie jest pewna.

Gdy natychmiastowa aktualizacja nie jest możliwa, producent zaleca wyłączenie integracji Okta Conditional Access do czasu wdrożenia wersji naprawionej. Decyzję trzeba skoordynować z IAM, ponieważ wyłączenie kontroli może zmienić politykę dostępu użytkowników. Bezpieczna mitygacja nie może po cichu osłabić innej warstwy.

Dlaczego to jest klasyczny confused trust

Agent musi raportować dane o stanie urządzenia, aby control plane podjął decyzję o dostępie. Raport nie powinien jednak wpływać na strukturę zapytania. Parametryzacja SQL oddziela dane od kodu, ale potrzebne są również walidacja typu, limit długości i model uprawnień. Nawet poprawnie sparametryzowana wartość nie powinna pozwalać hostowi pytać o obiekty spoza własnego zakresu.

Architektonicznie warto rozdzielić dane telemetryczne, decyzję conditional access i sesje administratorów. Jeżeli wszystkie znajdują się w jednym szeroko dostępnym magazynie, jedna podatność zapytania ma większy blast radius. Tokeny sesji powinny być skrócone, szyfrowane lub przechowywane tak, aby sam odczyt rekordu nie pozwalał na natychmiastowy replay.

Drugi błąd: aplikacje iOS pod przewidywalnym URL

Fleet ujawnił także problem w enterprise endpoints udostępniających paczki IPA i manifesty wewnętrznych aplikacji iOS. Apple InstallEnterpriseApplication wymaga URL osiągalnego przez zarządzane urządzenie bez sesji Fleet. Starsza ścieżka instalatora rozwiązywała to losowym, trudnym do odgadnięcia tokenem. Nowsze endpointy in-house apps nie miały jeszcze tego mechanizmu i używały sekwencyjnych identyfikatorów tytułów.

Napastnik mogący połączyć się z serwerem Fleet mógł zgadywać identyfikatory i pobrać IPA oraz metadane: bundle identifier, wersję i nazwę. Advisory klasyfikuje wpływ jako read-only disclosure. Nie ma tu podniesienia uprawnień ani zapisu na hostach. Błąd dotyczy enterprise tier, a poprawka jest w Fleet 4.87.0.

Nie wolno jednak zakładać, że binarna aplikacja jest bezwartościowa. IPA może ujawnić adresy API, feature flags, certyfikaty testowe, nazwy środowisk, logikę biznesową i materiały diagnostyczne. Sekretów nigdy nie należy umieszczać w aplikacji klienckiej, ale wyciek nadal ułatwia rozpoznanie. Producent zaleca ograniczyć dostęp sieciowy, usunąć szczególnie wrażliwe paczki i — gdzie to dostępne — stosować podpisywane, krótkotrwałe URL CloudFront.

Plan aktualizacji bez utraty zarządzania flotą

Najpierw potwierdź wersję Fleet, edycję, konfigurację Okta, liczbę hostów, external URL oraz sposób dystrybucji iOS. Zapisz backup bazy zgodnie z dokumentacją i przetestuj odtwarzanie. Sprawdź release notes pomiędzy wersją bieżącą i docelową, migracje schematu oraz kompatybilność fleetd, osquery, reverse proxy i integracji SSO.

Po aktualizacji do co najmniej 4.87.0 uzyskujesz obie opisane poprawki. W dużym środowisku warto najpierw wykonać staging z kopią konfiguracji i syntetycznymi urządzeniami. Test powinien objąć enrollment, check-in, query, software install, conditional access, logowanie administratora, skrypty i rollback aplikacji iOS. Nie testuj SQL injection ani cudzych tokenów na produkcji.

Jeżeli rozdzielasz aktualizacje, 4.86.2 zamyka CVE-2026-54245, a 4.87.0 dodaje ochronę URL aplikacji iOS. Stan końcowy powinien jednak wynikać z aktualnie wspieranej wersji, nie tylko minimalnego numeru z advisory.

Hunting i odpowiedź po możliwym naruszeniu

Przejrzyj logi endpointu Okta Conditional Access pod kątem nietypowych wartości, błędów SQL, nagłych dużych odpowiedzi i żądań z hostów o zmienionym stanie. W bazie oraz logach aplikacji poszukaj nowych sesji global admin, użycia sesji z innego adresu, masowego odczytu i uruchamiania skryptów bez ticketu. Skoreluj działania z tożsamością administratora, czasem oraz hostem źródłowym.

Jeżeli istnieją dowody odczytu tokenów, aktualizacja usuwa podatność, ale nie unieważnia skradzionej sesji. Unieważnij aktywne sesje administracyjne, wymuś ponowne uwierzytelnienie, rotuj poświadczenia integracji w zakresie uzasadnionym dowodami i zbadaj wszystkie skrypty wysłane w okresie ekspozycji. Host, od którego zaczął się łańcuch, wymaga triage EDR i decyzji o re-enrollment.

Dla paczek iOS sprawdź access logs pod kątem sekwencyjnych prób i pobrań z adresów niebędących urządzeniami zarządzanymi. Trzeba ustalić, które wersje IPA były dostępne i jakie informacje zawierały. Samo pobranie nie oznacza wykonania kodu w środowisku firmy.

Kontrole długoterminowe

Telemetry od agenta powinna przechodzić walidację kontraktu i nigdy nie tworzyć fragmentu SQL. Testy bezpieczeństwa muszą obejmować złośliwy enrolled host jako odrębny model aktora. Sesje administracyjne powinny mieć krótki czas życia, MFA, powiązanie z urządzeniem i alert przy zmianie geolokalizacji lub User-Agent.

W dystrybucji oprogramowania publicznie osiągalny URL powinien być capability URL o wysokiej entropii, z ograniczonym czasem i — jeśli to możliwe — związany z urządzeniem. Reverse proxy może ograniczać szybkość enumeracji, ale rate limiting nie zastąpi nieprzewidywalnego tokenu.

Fakty projektu i wnioski Breachroad

Warunki Okta, wpływ SQLi, wersje 4.86.2 i 4.87.0, opis paczek IPA oraz workaroundy pochodzą z advisory Fleet. Projekt nie informuje o aktywnym wykorzystaniu. Separacja magazynu tokenów, scenariusz testowy z wrogim hostem, hunting i zasady unieważniania sesji są analizą Breachroad.

Szkolenia cyberbezpieczeństwa pomagają zespołom endpoint, IAM i SOC przećwiczyć taki łańcuch decyzyjny. Audyt bezpieczeństwa IT może zweryfikować konfigurację Fleet, sesje uprzywilejowane, ekspozycję serwera i dowody aktualizacji.

Źródła

UDOSTĘPNIJ / KOPIUJ