Apache Airflow
CVE-2025-66388
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged UI user
-
ExploitBrowse to task Rendered Templates view
-
ExecutionRead unredacted secret values
-
ImpactReuse credentials for lateral access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Outbound data filtering
|
| Exploitation Conditions | Exploitation requires an authenticated Airflow UI account (PR:L) that can access the Rendered Templates / rendered task-instance fields view but lacks authorization for the underlying secrets. The concrete prerequisite is that sensitive values flow through an operator's template_fields and were registered for masking via mask_secret() on workers or the DAG processor - prior to 3.1.4 these were serialized without calling redact() before being sent to the API server, so they appeared in plaintext in the UI. Limiting factors: the attacker must already hold valid credentials (no unauthenticated access), the affected DAGs/tasks must actually pass secrets through templated fields, and the risk is only meaningful in multi-user/multi-tenant deployments where some users are not authorized to view those secrets. Default single-admin deployments where all users already have full secret access face negligible real exposure. |
| Impact | This is a moderate-severity information disclosure flaw (CVSS 6.5, CWE-201) that should be treated as a patch-soon rather than emergency item. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) indicates network-reachable, low-complexity exploitation but requires an authenticated low-privileged account (PR:L), and impact is confidentiality-only (C:H, I:N, A:N) - consistent with exposing secret values without altering data or availability. The EPSS score of 0.48% (39th percentile) is low, and there is no CISA KEV listing and no public exploit identified, so there is no evidence of active or widespread exploitation. The signals are mutually consistent rather than conflicting: a real but bounded insider/least-privilege-bypass risk. The attacker must already be an authenticated Airflow UI user, which caps the exposure to environments where lower-privileged users exist and where sensitive values are passed through operator template_fields; the primary value for an attacker is harvesting credentials/secrets they are not authorized to see, enabling lateral movement. Priority should scale with how multi-tenant the Airflow deployment is and whether secrets flow through templated fields. |
| Exploit ScenarioDerived | An authenticated Airflow user with only low-level UI access opens the Rendered Templates view for a task whose templated fields contain secrets (e.g., credentials registered via mask_secret() on workers or the DAG processor). Because those values were not redacted before being sent to the API server/UI, the user reads plaintext secrets they are not authorized to see and can reuse them for lateral movement. No public exploit code is required - this is triggered through normal UI navigation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Authenticated users of Apache Airflow can read secret values exposed in the Rendered Templates view because operator template fields were serialized and sent to the API server without first applying the secrets masker, so values registered via mask_secret() appeared in plaintext in the UI. Exploitation requires a valid Airflow UI account (CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, PR:L - authenticated) that can reach rendered task-instance fields but is not authorized for the underlying secrets, making this a real concern mainly in multi-user or multi-tenant deployments where DAGs and tasks actually pass secrets through templated fields. The flaw is a moderate-severity information disclosure issue (CVSS 6.5, CWE-201) affecting Airflow releases before 3.1.4; no public exploit code has been identified at time of analysis and EPSS is low at 0.48 percent (39th percentile), so it should be treated as a patch-soon rather than emergency item.
RemediationAI
Upgrade to Apache Airflow 3.1.4, which fixes this issue; the vendor explicitly recommends this version, and the fix is the redact() call added by upstream PR apache/airflow#58772 which masks secrets in rendered template fields inside the task process before they reach the API server. Confirm the upgrade against the advisory at https://lists.apache.org/thread/mv9hzsx8grjf7gdlkxwppnpbtogtls2g. If an immediate upgrade is not possible, compensating controls include restricting who can open the Rendered Templates / rendered task-instance fields view (remove unnecessary UI accounts or limit roles), reviewing and removing secrets that are passed through operator template_fields so that sensitive values are not placed in rendered output at all, and - where the deployment is multi-tenant - treating the Airflow UI as a trusted-only surface and blocking broad access to it. Each control has trade-offs: tightening UI roles can disrupt legitimate operators and reviewers, refactoring DAGs to keep secrets out of template fields requires code changes and may reduce observability of rendered parameters, and restricting UI access does not address the underlying disclosure for users who still hold the view permission, so patching remains the primary remediation.
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
Apache Airflow is a workflow orchestration platform whose task SDK serializes operator template fields for display in the UI. In affected versions, the _serialize_rendered_fields function in task-sdk/src/airflow/sdk/execution_time/task_runner.py built the rendered-fields payload using serialize_template_field() alone and sent it to the API server without invoking the secrets masker, so the redaction that normally hides sensitive values was never applied before transmission. Airflow provides a masking mechanism via airflow.sdk.log.mask_secret() and the _shared/secrets_masker helpers, which register secret values so that they are replaced with masks; the missing redact() call meant secrets registered on workers or the DAG processor were persisted into the SetRenderedFields payload in cleartext and then surfaced through the Rendered Templates view. This maps to CWE-201 (Insertion of Sensitive Information Into Sent Data): sensitive data is embedded into an outbound message that is later rendered to users, rather than a flaw in authorization or cryptography. The remediation (PR apache/airflow#58772) wraps each serialized template field in redact(...) inside the task process before it is sent to the API server, and its accompanying test asserts that a value registered with mask_secret() ("admin_user_12345") becomes "***" in the SetRenderedFields message while a non-secret value ("us-west-2") is left intact. CPE cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:* reflects the wildcard range of affected versions prior to the fix.
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:N/S:U/C:H/I:N/A:N
Network-accessible UI with low-privileged authentication required (PR:L), no user interaction, confidentiality-only impact from exposed secrets so I:N/A:N and scope unchanged.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
A vulnerability in Apache Airflow allowed authenticated UI users to view secret values in rendered templates due to secrets not being properly redacted, potentially exposing secrets to users without the appropriate authorization.
Users are recommended to upgrade to version 3.1.4, which fixes this issue.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
Exploit-DB