Apache Airflow CVE-2025-54941
MEDIUMAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Airflow web UI
-
ExploitSet malicious parameter on example_dag_decorator
-
ExecutionTrigger DAG run referencing attacker server
-
ImpactExecute arbitrary code on worker
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires that example DAGs - specifically |
| Impact | Signals converge on a LOW real-world priority despite the OS-command-injection classification. The CVSS base score is only 4.6 (Medium), and the vector itself tempers impact: AV:N but PR:L (an authenticated Airflow UI user is required) and UI:R (a DAG run must be triggered), with C:L/I:L/A:N. EPSS is 0.49% (40th percentile) - low probability of exploitation. The CVE is NOT in CISA KEV and no POC is referenced, so exploitation status is 'no public exploit identified at time of analysis.' Crucially, the description states the issue is only reachable when example DAGs are enabled in production (explicitly NOT the default) or when the vulnerable example code has been copied into a custom DAG - a precondition that sharply narrows the exposed population below what the AV:N vector alone suggests. One conflict worth flagging: the description says an attacker can 'execute code on worker,' which normally implies HIGH technical impact (C:H/I:H), yet the assigned vector rates only C:L/I:L - verify the true impact of worker code execution with the vendor, as the official score may understate it. Net: a genuine but low-urgency, authenticated, non-default-configuration issue, not a widespread-exploitation emergency. |
| Exploit ScenarioDerived | An authenticated Airflow web-UI user with permission to configure or trigger the |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
OS command injection in Apache Airflow's bundled example_dag_decorator example DAG allows an authenticated web UI user to supply an unvalidated parameter that redirects the example to an attacker-controlled server and executes code on the Airflow worker. Exploitation is narrow: it requires that example DAGs be explicitly enabled in production (not the default, since Airflow ships example loading disabled) or that the vulnerable example code was copied into a user-built DAG, and it further requires the user to trigger an actual DAG run, so only misconfigured or copy-reused environments are realistically exposed. No public exploit has been identified at time of analysis, EPSS is low at 0.49% (~40th percentile), and per NVD the issue is rated modestly (CVSS 3.1 base 4.6), with the independent assessment raising attack complexity to High; the vendor-released fix is Airflow 3.0.5.
RemediationAI
Upgrade to Apache Airflow 3.0.5, which contains the corrected example_dag_decorator implementation, and review any local copy of that example before upgrading. As an interim or compensating control, keep example DAGs disabled by setting AIRFLOW__CORE__LOAD_EXAMPLES=False (equivalently core.load_examples = False in airflow.cfg) - this is already the expected production default, so enabling it is itself the misconfiguration that creates exposure - and delete or rewrite any example_dag_decorator code incorporated into custom DAGs so the unvalidated parameter is removed or strictly allow-listed to trusted hosts. Restrict Airflow UI access to trusted, authenticated users, since the attack requires an authenticated UI account able to set the parameter and trigger a run, and note that tightening UI permissions reduces convenience for legitimate operators but removes the PR:L prerequisite. Vendor guidance is in the Apache advisory at https://lists.apache.org/thread/c6q6nofc6xl5bms039ks9b34v0v36df1 and the oss-security thread at http://www.openwall.com/lists/oss-security/2025/10/29/6.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-78 (OS Command Injection): the example_dag_decorator example DAG passes a user-controllable parameter into a server-side operation on the Airflow worker without validating it, so a UI user can point the DAG at a malicious server and have code executed in the worker's context. Airflow's DAG-authoring framework (@dag/@task decorators) renders example DAGs in the webserver UI and executes them via the scheduler/worker; example DAG loading is governed by the core.load_examples / AIRFLOW__CORE__LOAD_EXAMPLES setting, which is disabled in typical production deployments, meaning the vulnerable code path is usually absent unless explicitly enabled or copy-pasted into custom DAGs. The CPE cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:* indicates the advisory applies to Airflow broadly rather than a single pinned release, with the corrective changes landing in 3.0.5. The CVSS vector (AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N in NVD; independent assessment sets AC:H) confirms an authenticated UI user (PR:L) acting over the network and a required user interaction (UI:R), with limited confidentiality and integrity impact and no availability impact.
Know when Airflow gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N
Reachable only when non-default example DAGs are enabled (AC:H) by an authenticated UI user (PR:L) who must trigger the run (UI:R); impact kept at C:L/I:L per the vendor rating, A:N.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
An example dag example_dag_decorator had non-validated parameter that allowed the UI user to redirect the example to a malicious server and execute code on worker. This however required that the example dags are enabled in production (not default) or the example dag code copied to build your own similar dag. If you used the example_dag_decorator please review it and apply the changes implemented in Airflow 3.0.5 accordingly.
Blast Radius
ecosystem impact- 4 pypi packages depend on apache-airflow (2 direct, 2 indirect)
Ecosystem-wide dependent count for version 3.0.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Affected Products (CPE)NVD
The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but th
An issue was found in Apache Airflow versions 1.10.10 and below. Rated high severity (CVSS 8.8), this vulnerability is r
The variable import endpoint was not protected by authentication in Airflow >=2.0.0, <2.1.3. Rated critical severity (CV
An issue was found in Apache Airflow versions 1.10.10 and below. Rated critical severity (CVSS 9.8), this vulnerability
A vulnerability in Example Dags of Apache Airflow allows an attacker with UI access who can trigger DAGs, to execute arb
In Apache Airflow, prior to version 2.2.4, some example DAGs did not properly sanitize user-provided params, making them
Incorrect Session Validation in Apache Airflow Webserver versions prior to 1.10.14 with default config allows a maliciou
Insufficient session expiration in apache-airflow-providers-fab 2.4.2 through 3.9.0 means an attacker who already holds
Authentication bypass in the Apache Airflow Keycloak auth manager provider (apache-airflow-providers-keycloak below 0.10
Privilege Context Switching Error vulnerability in Apache Software Foundation Apache Airflow.6.0. Rated critical severit
Improper Neutralization of Special Elements used in a Command ('Command Injection') vulnerability in Apache Software Fou
Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in Apache Airfl
NVD
CVE.org
EPSS
GitHub PoC
Exploit-DB