Skip to main content

Apache Airflow CVE-2026-41014

| EUVDEUVD-2026-33595 MEDIUM
Missing Authorization (CWE-862)
4.3
CVSS 3.1 · Vendor
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Airflow 3.2.0-3.2.1 instance
  2. Delivery
    Send GET /ui/partitioned_dag_runs request
  3. Exploit
    Bypass missing DAG-level authorization check
  4. Execution
    Receive AssetPartitionDagRun records for restricted DAGs
  5. Impact
    Enumerate 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Apache Airflow 3.2.0 <3.2.2

Affected Packages

pypi apache-airflow fix: 3.2.2

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

Vendor (CNA) PRIMARY 4.3 MEDIUM
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

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

4
CVSS changed
Jun 02, 2026 - 17:22 NVD
4.3 (MEDIUM)
Patch available
Jun 01, 2026 - 10:01 EUVD
CVE Published
May 31, 2026 - 12:45 nvd
MEDIUM 4.3
CVE Published
May 31, 2026 - 12:45 nvd
UNKNOWN (no severity yet)

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 10 pypi packages depend on apache-airflow (1 direct, 9 indirect)

Ecosystem-wide dependent count for version 3.2.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 96% exploitable
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2020-13927 CRITICAL POC
9.8 Nov 10

The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but th

CVE-2020-11978 HIGH POC
8.8 Jul 17

An issue was found in Apache Airflow versions 1.10.10 and below. Rated high severity (CVSS 8.8), this vulnerability is r

CVE-2021-38540 CRITICAL POC
9.8 Sep 09

The variable import endpoint was not protected by authentication in Airflow >=2.0.0, <2.1.3. Rated critical severity (CV

CVE-2020-11981 CRITICAL POC
9.8 Jul 17

An issue was found in Apache Airflow versions 1.10.10 and below. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2022-40127 HIGH POC
8.8 Nov 14

A vulnerability in Example Dags of Apache Airflow allows an attacker with UI access who can trigger DAGs, to execute arb

CVE-2022-24288 HIGH POC
8.8 Feb 25

In Apache Airflow, prior to version 2.2.4, some example DAGs did not properly sanitize user-provided params, making them

CVE-2020-17526 HIGH POC
7.7 Dec 21

Incorrect Session Validation in Apache Airflow Webserver versions prior to 1.10.14 with default config allows a maliciou

CVE-2026-82311 CRITICAL
9.8 Sep 15

Insufficient session expiration in apache-airflow-providers-fab 2.4.2 through 3.9.0 means an attacker who already holds

CVE-2026-76187 CRITICAL
9.8 Sep 15

Authentication bypass in the Apache Airflow Keycloak auth manager provider (apache-airflow-providers-keycloak below 0.10

CVE-2023-25754 CRITICAL
9.8 May 08

Privilege Context Switching Error vulnerability in Apache Software Foundation Apache Airflow.6.0. Rated critical severit

CVE-2023-22884 CRITICAL
9.8 Jan 21

Improper Neutralization of Special Elements used in a Command ('Command Injection') vulnerability in Apache Software Fou

CVE-2022-40189 CRITICAL
9.8 Nov 22

Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in Apache Airfl

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy