CVE-2026-40861 json
Apache Airflow: Arbitrary File Read via Log Symlink following in FileTaskHandler
published 2026-06-01 5 mo ago modified 2026-11-03 6 d ago also BIT-airflow-2026-40861 , EUVD-2026-33598 , GHSA-89cj-xrpx-j79m , PYSEC-2026-181
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 53%
- public exploits
- 0
- none known
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.
Patch / fix
- pypi apache-airflow 3.2.2
- bitnami airflow 3.2.2
- Apache Software Foundation Apache Airflow 3.0.0, 3.2.2
- github.com/apache/airflow#65325 pull request
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.69% chance of exploitation in the next 30 days, higher than 53% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | apache-airflow | <3.2.2 |
3.2.2 |
| bitnami | airflow | <3.2.2 |
3.2.2 |
Affected products
- Apache Software Foundation Apache Airflow
Classification
- Weakness
-
- CWE-59 Improper Link Resolution Before File Access
References
-
github.com
/apache/airflow/pull/65325
patch, web, issue-tracking
-
lists.apache.org
/thread/823334db2559xjlwt59gpzjz47thnscl
vendor-advisory, web, mailing-list, advisory
-
openwall.com
/lists/oss-security/2026/05/31/1
web, mailing-list, third-party-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-40861
advisory, web
-
github.com
/apache/airflow
package
-
github.com
/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-181.yaml
web
-
github.com
/advisories/GHSA-89cj-xrpx-j79m
advisory
Sources
- CVE List CVE-2026-40861
- GitHub Advisory GHSA-89cj-xrpx-j79m
- NVD CVE-2026-40861
- OSV BIT-airflow-2026-40861
- OSV PYSEC-2026-181
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.