GHSA-x2x7-p37c-43cr
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Airflow 3.2.0-3.2.1 instance
-
DeliverySend GET /ui/partitioned_dag_runs request
-
ExploitBypass missing DAG-level authorization check
-
ExecutionReceive AssetPartitionDagRun records for restricted DAGs
-
ImpactEnumerate unauthorized DAG names and partition metadata
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid authenticated Airflow session (PR:L - unauthenticated access is not possible). The vulnerability is only meaningful when the Airflow deployment enforces per-DAG RBAC to restrict specific users or roles to specific DAG subsets; in environments where all authenticated users hold global DAG read access, there is no authorization boundary to bypass and no additional information is disclosed. The /ui/partitioned_dag_runs endpoint must be network-reachable by the attacker's session. No special attacker-controlled configuration, non-default Airflow settings, or specific operating system is required. Limiting factors: valid credentials are mandatory; impact is read-only DAG run metadata disclosure with no code execution or data modification possible; only relevant in multi-tenant or team-partitioned Airflow deployments using DAG-level RBAC. |
| Impact | CVSS 4.3 Medium (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) is consistent with the actual impact: the endpoint is network-reachable with no complexity barrier, but PR:L confirms a valid authenticated session is required. Scope is unchanged (S:U) and the only impact is a partial confidentiality disclosure (C:L) - no integrity or availability impact is possible. EPSS at 0.01% (4th percentile) reinforces that mass exploitation is not occurring and is unlikely given the authentication prerequisite. This CVE is not listed in CISA KEV, and no POC code was identified. Real-world priority is driven almost entirely by deployment context: organizations running Airflow 3.2.0-3.2.1 with per-DAG RBAC to enforce team or tenant isolation face a genuine authorization boundary breach; single-tenant or fully-trusted-user deployments have negligible practical risk from this issue. The low EPSS and absence from KEV suggest patching can proceed through normal vulnerability management cadence rather than emergency response. |
| Exploit ScenarioDerived | An authenticated Airflow user whose role grants access to only a subset of DAGs (e.g., team-A DAGs) sends a standard GET request to /ui/partitioned_dag_runs?has_created_dag_run_id=false without any crafting or special tooling. The endpoint returns AssetPartitionDagRun records including target_dag_id values for DAGs the user is not permitted to see, leaking DAG names, partition keys, and run metadata belonging to other teams. No proof-of-concept code is publicly identified; the attack is reproducible by any valid Airflow session against a 3.2.0-3.2.1 instance with per-DAG RBAC active. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 02, 2026
Per-DAG RBAC bypass in Apache Airflow 3.2.0-3.2.1 allows authenticated users with restricted DAG permissions to read partitioned DAG run metadata for DAGs outside their authorized scope via the /ui/partitioned_dag_runs endpoint. The route enforced asset-level access control via requires_access_asset but omitted the parallel DAG-level check (requires_access_dag) and result-set filtering by readable DAG IDs, creating a gap in the multi-layer authorization model. No public exploit identified at time of analysis; EPSS is 0.01% (4th percentile), indicating very low exploitation probability consistent with the authenticated, information-disclosure-only impact.
RemediationAI
Upgrade to Apache Airflow 3.2.2 or later, which includes the authorization fix from GitHub PR #65344 that adds DAG-level access enforcement and result-set filtering to the /ui/partitioned_dag_runs endpoint. The Apache advisory thread at https://lists.apache.org/thread/12nbzwwby7g883w2j13gn7ny1545xob9 provides official guidance. If immediate upgrade is blocked, a targeted compensating control is to restrict access to the /ui/partitioned_dag_runs path at the reverse-proxy or API gateway layer to only users or roles that have full DAG visibility - trade-off is that legitimate UI features relying on this endpoint (partitioned asset timetable views) will be unavailable to restricted users. Alternatively, flattening DAG permissions so all authenticated users share the same access level eliminates the exploitable boundary but defeats the purpose of per-DAG RBAC. Generic network perimeter controls do not address the root authorization gap and should not be substituted for patching.
Affected VersionsENISA
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's FastAPI-based UI API exposes the /ui/partitioned_dag_runs endpoint, which queries the AssetPartitionDagRun table to return partitioned DAG run records keyed by target_dag_id. The route applied requires_access_asset(method='GET') to gate on asset-level permissions but failed to also invoke requires_access_dag(method='GET') or inject a ReadableDagsFilterDep to scope the SQL query to the caller's authorized DAG IDs. CWE-862 (Missing Authorization) directly describes this root cause: a code path performs a data-access operation without verifying that the caller holds the necessary authorization for the resources returned. The PR #65344 fix adds both a route-level Depends(requires_access_dag(method='GET')) dependency and a query-time WHERE filter (AssetPartitionDagRun.target_dag_id.in_(readable_dag_ids)) to close both the access-check and data-leakage gaps simultaneously. The affected component is in airflow-core/src/airflow/api_fastapi/core_api/routes/ui/partitioned_dag_runs.py.
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:L/I:N/A:N
Primary rating from Vendor (CNA) · only source for this CVE.
CVSS VectorVendor
Lifecycle Timeline
4Description PRE-NVD
Blast Radius
ecosystem impact- 10 pypi packages depend on apache-airflow (1 direct, 9 indirect)
Ecosystem-wide dependent count for version 3.2.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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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
EUVD-2026-33595
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB