CVE-2025-54941: Apache Airflow has a command injection vulnerability in "example_dag_decorator"
Affects apache-airflowSource GCVE Database
Not known to be exploited · CVSS 4.6 Medium : upgrade to 3.0.5 when convenient.
Data as of 4 Nov 2026, 18:20 UTC
Thin evidence
One scorer or none| CISA-ADP | CVSS 3.1 | 4.6 |
|---|
- Patch
- Available – fixed in 3.0.5
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 30 Oct 2025
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 4 Nov 2026.
What to do
Upgrade apache-airflow to 3.0.5.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| PyPIapache-airflow | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
Upgrade Apache Airflow to version 3.0.5 or later, where the vulnerability is fixed. If you use the example_dag_decorator or have enabled example DAGs in production, review your DAGs and apply the changes implemented in Airflow 3.0.5 accordingly. No additional mitigations are indicated by the vendor advisory.
Description
Apache Airflow versions from 3.0.0 up to but not including 3.0.5 contain a command injection vulnerability in the example DAG named "example_dag_decorator." This vulnerability arises from a non-validated parameter that allows a UI user to redirect the example to a malicious server and execute code on the worker. Exploitation requires that example DAGs are enabled in production (which is not the default) or that the example DAG code is copied to create a similar DAG. The issue is fixed in version 3.0.5.