Read the docs
TI-2026-29518 Aliases CVE-2026-40861GHSA-89cj-xrpx-j79m

Apache Airflow: Arbitrary File Read via Log Symlink following in FileTaskHandler

Priority LOW 30CWE-59Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
Information disclosure
Confidentiality · integrity · availability
High · None · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA and GitHub. Impact type from CWE-59 and the CVSS impact.

Summary

A Dag author could either (a) create a symlink under their task's log directory pointing to an arbitrary file readable by the API server process (read-path attack — e.g. `/etc/passwd` or `airflow.cfg`) or (b) supply a `task_id` containing `..` sequences accepted by the Task SDK's `KEY_REGEX` (write-path attack), and in both cases the FileTaskHandler resolves the log path outside the configured `base_log_folder`, leaking or overwriting arbitrary files. Only affects deployments where the worker log folder is shared with the API server. Users are advised to upgrade to `apache-airflow` 3.2.2 or later. As a defense-in-depth mitigation, deploy the worker and API server with separate log volumes so that worker-controlled paths cannot reach the API server's filesystem.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00691 53rd percentileScored 2026-11-07
Fix Fixed Apache Airflow (Apache Software Foundation): 3.0.0, 3.2.2apache-airflow (PyPI): 3.2.2

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ApacheApache Airflowbefore 3.0.03.0.0Patch availableCNA
ApacheApache Airflow3.0.0 to before 3.2.23.2.2Patch availableCNA
—apache-airflow (PyPI)before 3.2.23.2.2Patch availableGHSA-89cj-xrpx-j79m
  • Apache Airflow VendorApache Affected before 3.0.0 Fixed in 3.0.0 Patch available CNA
  • Apache Airflow VendorApache Affected 3.0.0 to before 3.2.2 Fixed in 3.2.2 Patch available CNA
  • apache-airflow (PyPI) Vendor— Affected before 3.2.2 Fixed in 3.2.2 Patch available GHSA-89cj-xrpx-j79m

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*before 3.2.2VulnerableApache
  • cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:* Versions before 3.2.2 Vulnerable ·Apache

Remediation

  • Fix · CNA Apache Airflow (Apache Software Foundation) Fixed in 3.0.0
  • Fix · CNA Apache Airflow (Apache Software Foundation) Fixed in 3.2.2
  • Fix · GHSA-89cj-xrpx-j79m apache-airflow (PyPI) Fixed in 3.2.2 Advisory →

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    Apache Airflow 3.2.2

    17 records Highest priority Priority MEDIUM 3 MEDIUM, 14 LOW

    Other records, highest priority first

    • TI-2026-30568 Apache Airflow: BashOperator Jinja2 injection via dag_run.conf — low-privilege user patternPriority MEDIUM 47
    • TI-2026-36484 Apache Airflow: JWT Token Exposure in KubernetesExecutor Command-Line ArgumentsPriority MEDIUM 41
    • TI-2026-30661 Apache Airflow: Authenticated RCE via XCom PATCH endpoint — XComUpdateBody missing FORBIDDEN_XCOM_KEYS validatorPriority MEDIUM 41
  • Release ·

    Apache Airflow 3.0.0

    9 records Highest priority Priority MEDIUM 1 MEDIUM, 8 LOW

    Other records, highest priority first

    • TI-2026-36484 Apache Airflow: JWT Token Exposure in KubernetesExecutor Command-Line ArgumentsPriority MEDIUM 41
    • TI-2026-33151 Apache Airflow: Arbitrary import in custom deadline-reference deserializationPriority LOW 39
    • TI-2026-36006 Apache Airflow: revoke_token() unreachable in FabAuthManager / KeycloakAuthManager logout pathPriority LOW 29

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-40861
  2. 2026-10-03 Alias added: GHSA-89cj-xrpx-j79m
  3. 2026-11-03 Fix available: [email protected], [email protected] · CNA

References

  • TI-2020-10905 Missing authentication in Apache Airflow KEVCVSS 3.1CRITICAL 9.8
  • TI-2020-09638 OS command injection in Apache Airflow KEVCVSS 3.1HIGH 8.8
  • TI-2022-19017 Apache Airflow <2.4.0 has an RCE in a bash example CVSS 3.1HIGH 8.8
  • TI-2021-16140 Apache Airflow: Variable Import endpoint missed authentication check CVSS 3.1CRITICAL 9.8
  • TI-2022-08169 Apache Airflow: RCE in example DAGs CVSS 3.1HIGH 8.8
  • TI-2024-26776 Apache Airflow: DAG Author Code Execution possibility in airflow-scheduler CVSS 3.1HIGH 8.8
See all 157 →

Sources