CVE-2026-96285
NieznaneStreszczenie
Apache Airflow 3.3.1 zawiera niekompletną poprawkę CVE-2026-67260 — sprawdzenie typu wartości next_kwargs wykonywane jest dopiero po deserializacji całego ładunku, co pozwala na uruchomienie konstruktorów dozwolonych klas w procesie schedulera. Autor DAG-a może wywołać wykonanie kodu w schedulerze i serwerze API bez niestandardowej konfiguracji; wersje przed 3.3.0 nie są podatne.
Ocena ryzyka
Autor DAG-a może wykonać kod w najbardziej uprzywilejowanym procesie Airflow, naruszając model bezpieczeństwa i integralność środowiska.
Rekomendacja
Zaktualizuj apache-airflow do wersji 3.4.0 lub nowszej, zwłaszcza jeśli wcześniej zainstalowano 3.3.1 jako poprawkę CVE-2026-67260.
Inne podatności w Apache Airflow
Zobacz wszystkie- CVE-2026-86829Nieznane
Scheduler Apache Airflow w pełni deserializuje wartości XCom zapisane przez kod zadania podczas oceny zależności zadań. Autor DAG-a kontrolujący zawartość XCom może więc wpływać na dane deserializowane w procesie schedulera, wykraczając poza udokumentowane uprawnienia.
- CVE-2026-86468Nieznane
CLI Apache Airflow zapisuje argumenty w logu audytowym, ale maskuje sekrety według pozycji argumentu, przez co niektóre obsługiwane formy poleceń pozostawiają sekrety w postaci jawnej, np. końcowe `--description` w poleceniach Variable, `--conn-extra` oraz wbudowane `--password` w poleceniach `airflow keycloak-auth-manager`. Użytkownik, który może czytać zdarzenia audytowe, ale nie ma dostępu do Variable i Connection, może odczytać te wartości przez API dziennika zdarzeń.
- CVE-2026-82337Nieznane
Apache Airflow odtwarzał pola alertów terminów (deadline alerts) przez ogólną deserializację, która importuje i tworzy instancje klasy wskazanej w serializowanym Dagu, w procesach schedulera i serwera API. Autor Daga mógł spowodować utworzenie klas z listy dozwolonych Airflow z kontrolowanymi przez siebie argumentami. Dotyczy to wdrożeń, których Dagi używają deadline alerts; to niekompletna poprawka CVE-2026-45360, która zabezpieczyła tylko pole reference.
- CVE-2026-76185Nieznane
Pamięć podręczna sekretów w Task SDK Apache Airflow budowała klucze z nazwy zespołu i identyfikatora sekretu z nieescapowanym separatorem _, co mogło powodować kolizje różnych par (zespół, identyfikator sekretu). W środowiskach wielozespołowych autor Daga mógł odczytać wartość Variable lub Connection innego zespołu, tworząc kolidujący identyfikator sekretu. Dotyczy to tylko wdrożeń z jednocześnie włączonymi core.multi_team = True i secrets.use_cache = True.
- CVE-2026-68982Nieznane
CeleryExecutor w Apache Airflow uruchamiał zadania callback (ExecuteCallback, używane dla callbacków deadline-alert) bez walidacji tokenu uwierzytelniania zadania. Każdy mogący zapisywać do brokera Celery mógł zakolejkować sfałszowany callback i wykonać dowolny kod na każdym workerze CeleryExecutor bez poświadczeń Airflow. Dotyczy to wdrożeń używających CeleryExecutor.
- CVE-2026-50204Nieznane
Log audytowy Apache Airflow przechowywał wartości sekretów Connection i Variable w postaci jawnej w kolumnie `Log.extra`, ponieważ masker sekretów dopasowywał tylko skonfigurowane nazwy kluczy wrażliwych. Uwierzytelniony użytkownik z niskimi uprawnieniami i dostępem do odczytu API dziennika zdarzeń/audytu — bez wcześniejszego dostępu do danego połączenia lub zmiennej — mógł odczytać te wiersze i odzyskać poświadczenia dosłownie.
- CVE-2026-40913Nieznane
Publiczne API Import Errors w Apache Airflow zwracało surowy stos wywołań błędu parsowania każdemu użytkownikowi z uprawnieniem ImportError.can_read, gdy plik powodujący błąd nie miał zarejestrowanego Daga. Ma to miejsce, gdy plik nie parsuje się przed zdefiniowaniem Daga lub gdy wszystkie wcześniej zarejestrowane Dagi zostały usunięte, a błąd parsowania pozostaje. Użytkownicy, którzy nie powinni widzieć szczegółów pliku, mogą odczytać stosy wywołań ujawniające ścieżki plików i kod.
- CVE-2026-113508Nieznane
Endpoint wylogowania Apache Airflow próbował unieważnić przedstawiony token po stronie serwera, ale każdy błąd unieważniania był po cichu ignorowany, a wylogowanie nadal zgłaszało sukces. Gdy menedżer uwierzytelniania przekierowuje wylogowanie do zewnętrznego URL (np. FAB lub Keycloak), unieważnienie po stronie serwera jest jedynym mechanizmem unieważniającym token Airflow; zawodziło ono przy błędach bazy danych oraz niezawodnie dla tokenów zewnętrznego wystawcy akceptowanych przez [api_auth] trusted_jwks_url, których identyfikator tokenu jest dłuższy niż 32 znaki. Każdy posiadający kopię tokenu użytkownika sprzed wylogowania mógł go nadal używać wobec API Airflow do wygaśnięcia.
- CVE-2026-113504Nieznane
Masker sekretów Apache Airflow przestawał zagłębiać się w struktury zagnieżdżone po pięciu poziomach, więc sekret zarejestrowany w maskerze — np. hasło Connection lub wartość Variable — który pojawiał się głębiej niż pięć kontenerów pod kluczami niewrażliwymi, był wyświetlany w postaci jawnej w logach zadań i renderowanych polach szablonów. Użytkownik, który może czytać logi zadań lub renderowane szablony, ale nie powinien widzieć tych sekretów, mógł je odczytać.
- CVE-2026-111455Nieznane
Asynchroniczny test połączenia w Apache Airflow sprawdzał uprawnienia w momencie kolejkowania testu (tylko uprawnienie create, gdy identyfikator połączenia jeszcze nie istniał), ale po zakończeniu testu z commit_on_success zapisywał testowane połączenie pod tym identyfikatorem. Użytkownik uprawniony do tworzenia, ale nie do edycji połączeń, mógł nadpisać połączenie utworzone w międzyczasie przez kogoś innego. Dotyczy to tylko wdrożeń z włączonym niedomyślnym ustawieniem [core] test_connection.
Oryginalny opis (angielski, źródło NVD)
Apache Airflow 3.3.1 shipped a fix for CVE-2026-67260 that checks the scheduler's decoded `next_kwargs` value is a dictionary, but performs that check only after deserializing the whole stored payload. Deserialization reconstructs nested objects of classes permitted by the deserialization allow-list — which by default includes Airflow's own classes — and runs their constructors inside the scheduler process before the check can reject the value. A Dag author, who controls a task's `next_kwargs` through the task execution API, can therefore still trigger constructor execution in the scheduler when the `awaiting_input` timeout sweep processes the task, and in the API server when the task instance is served to a worker using an older Execution API version; no non-default configuration is required. Versions before 3.3.0 are not affected. This is an incomplete fix for CVE-2026-67260: deployments that upgraded to 3.3.1 for that issue must also upgrade to apache-airflow 3.4.0 or later.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

