Executive brief
Apache Airflow's scheduling dependencies graph endpoint fails to properly filter unauthorized DAG identifiers. An authenticated user with read access to some workflows (DAGs) could discover the names and relationships of other workflows they should not be able to access by inspecting the dependency graph. This undermines access control in multi-team deployments where DAG identifiers are intended to be confidential within team scopes.
Technical details
The vulnerability is an information disclosure (CWE-200) in the `/ui/dependencies` endpoint of Apache Airflow. The code applied per-DAG read authorization filtering only to top-level serialized DAG keys, but failed to propagate the same filter to the `dep.source` and `dep.target` fields within trigger and sensor dependency entries. An authenticated user with read permission on one or more DAGs could enumerate identifiers and dependency relationships of other DAGs outside their authorized scope by inspecting trigger/sensor dependency objects. The attack requires network access and valid UI authentication but no additional user interaction. This is a residual gap in the CVE-2026-28563 patch; users should upgrade to apache-airflow 3.3.0 or later to fully cover both the top-level DAG key and dependency edge filtering.
Affected products
- Apache Airflow < 3.3.0
Timeline
- 2026-07-07: disclosed
- 2026-06-02: patched: Fix merged in PR #67627; patched version 3.3.0
References
- https://github.com/apache/airflow/pull/67627
- https://lists.apache.org/thread/wzc8nflg94rq6w8f5tvtlo0o3g4wjrfl
- https://www.cve.org/CVERecord?id=CVE-2026-28563
- https://github.com/apache/airflow/commit/e61c9bac30a7b1a7f68589629f10c4cb247c683e
- https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-2086.yaml