CVE-2026-59245
Modified Modified - Updated After Analysis

Privilege Escalation in Apache Airflow FAB Auth Manager

Vulnerability report for CVE-2026-59245, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-13

Last updated on: 2026-07-14

Assigner: Apache Software Foundation

Description

In the Apache Airflow FAB auth manager, a DAG whose `dag_id` is `DAGs` collided with the global all-DAGs permission resource name produced by `resource_name()`, so a user granted per-DAG `access_control` on that one DAG was silently granted the global all-DAGs permission (privilege escalation). The escalation triggers when a DAG named `DAGs` exists and a lower-privileged user is given per-DAG access to it, granting that user read/edit access to every DAG. Users are advised to upgrade to `apache-airflow-providers-fab` 3.7.2 or later, which disambiguates the resource-name collision.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-13
Last Modified
2026-07-14
Generated
2026-08-03
AI Q&A
2026-07-14
EPSS Evaluated
2026-08-01
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
apache apache-airflow-providers-fab to 3.7.2 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-269 The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability, CVE-2026-59245, is a privilege escalation issue in the Apache Airflow FAB auth manager. It occurs due to a resource name collision between a DAG named 'DAGs' and the global all-DAGs permission resource.

The `resource_name()` function in Apache Airflow produces a resource name for permissions. When a DAG is named 'DAGs,' this function incorrectly resolves its permissions to the global all-DAGs resource instead of the intended per-DAG resource (DAG:DAGs). This happens because the function returns the dag_id unchanged if it matches a reserved resource name.

As a result, a user granted per-DAG access control on the 'DAGs' DAG is silently granted the global all-DAGs permission. This means the user gains read and edit access to every DAG in the system, bypassing intended access restrictions.

The issue was fixed by removing the short-circuit logic that allowed reserved names like 'DAGs' to bypass prefixing. Now, all dag_ids are consistently prefixed as 'DAG:<dag_id>,' ensuring no collisions occur.

Detection Guidance

To detect this vulnerability, you need to check if there is a DAG named 'DAGs' in your Apache Airflow environment and verify if any lower-privileged users have been granted per-DAG access control on it. This can lead to unintended global DAG permissions.

  • Check for the existence of a DAG named 'DAGs' by listing all DAGs in your Airflow environment. You can use the Airflow CLI command: 'airflow dags list'. Look for a DAG with the ID 'DAGs' in the output.
  • Review the access control settings for the 'DAGs' DAG. Use the Airflow UI or check the metadata database to see if any users or roles have been granted permissions specifically on the 'DAGs' DAG.
  • Verify the version of apache-airflow-providers-fab installed. Run: 'pip show apache-airflow-providers-fab'. If the version is earlier than 3.7.2, your system is vulnerable.
Impact Analysis

This vulnerability can impact you in several ways if you are using an affected version of Apache Airflow with the FAB auth manager.

  • Privilege escalation: A lower-privileged user granted per-DAG access to a DAG named 'DAGs' can gain unintended access to all DAGs in the system. This means they can read, edit, or execute any DAG, even those they should not have access to.
  • Security breach: If an attacker exploits this vulnerability, they could manipulate or exfiltrate sensitive data processed by any DAG. This could lead to unauthorized data access, data corruption, or disruption of workflows.
  • Compliance risks: Unauthorized access to DAGs may violate internal security policies or external regulations, potentially leading to compliance violations and associated penalties.

To mitigate this risk, you should upgrade to apache-airflow-providers-fab version 3.7.2 or later, which resolves the resource name collision issue.

Compliance Impact

This vulnerability can affect compliance with common standards and regulations in the following ways:

  • GDPR (General Data Protection Regulation): If the affected Apache Airflow instance processes personal data of EU citizens, unauthorized access to DAGs could lead to a data breach. GDPR requires strict access controls and reporting of breaches within 72 hours. Failure to prevent unauthorized access could result in significant fines (up to 4% of global revenue or €20 million, whichever is higher).
  • HIPAA (Health Insurance Portability and Accountability Act): If the system handles protected health information (PHI), this vulnerability could lead to unauthorized access to sensitive patient data. HIPAA mandates strict access controls and audit trails. A breach could result in fines, legal action, and reputational damage.
  • Other standards: Compliance frameworks like ISO 27001, SOC 2, or NIST require organizations to implement proper access controls and regularly audit permissions. This vulnerability undermines those controls, potentially leading to non-compliance and failed audits.

To maintain compliance, organizations should upgrade to the fixed version of apache-airflow-providers-fab (3.7.2 or later) and review access logs to ensure no unauthorized access occurred before the patch was applied.

Mitigation Strategies

The primary mitigation step is to upgrade the apache-airflow-providers-fab package to version 3.7.2 or later, which resolves the resource name collision issue.

  • Upgrade the package using pip: 'pip install --upgrade apache-airflow-providers-fab>=3.7.2'.
  • If upgrading is not immediately possible, remove or rename any DAG named 'DAGs' to prevent the collision. This can be done by editing the DAG file or removing it from the DAGs directory.
  • Review and adjust permissions for users who were granted access to the 'DAGs' DAG to ensure they do not retain unintended global DAG permissions.
  • Monitor user access and permissions to ensure no privilege escalation occurs until the upgrade is completed.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-59245. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart