Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Network-accessible endpoint requires authenticated partial DAG read access (PR:L); impact is confined to DAG identifier disclosure only (C:L), with no integrity or availability effect.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
2Blast Radius
ecosystem impact- 4 pypi packages depend on apache-airflow (2 direct, 2 indirect)
Ecosystem-wide dependent count for version 3.3.0.
DescriptionCVE.org
A bug in Apache Airflow's /ui/dependencies scheduling graph endpoint applied the caller's readable-Dag filter to the top-level serialized Dag key but still emitted referenced Dag IDs through the dep.source and dep.target fields of trigger / sensor dependency entries. An authenticated UI user with read permission on some Dags could enumerate the identifiers of other Dags they were not authorized to read by inspecting the dependency graph for trigger / sensor references. Affects deployments that rely on per-Dag read scoping to keep Dag identifiers private across teams. This is a residual gap in the fix for CVE-2026-28563, which filtered the top-level Dag key but did not propagate the filter into the trigger / sensor dep-source / dep-target fields. Users who already upgraded for CVE-2026-28563 should additionally upgrade to apache-airflow 3.3.0 or later to cover the residual trigger / sensor dependency leak.
AnalysisAI
Incomplete authorization filtering in Apache Airflow's /ui/dependencies scheduling graph endpoint exposes restricted DAG identifiers to authenticated users who lack read permission on those DAGs. The endpoint correctly filters top-level serialized DAG keys against the caller's ACL but leaks referenced DAG IDs through dep.source and dep.target fields of trigger and sensor dependency entries, enabling cross-team DAG enumeration in multi-tenant deployments. This is a residual gap from an incomplete fix for CVE-2026-28563; no public exploit has been identified at time of analysis, and a vendor patch is available in apache-airflow 3.3.0.
Technical ContextAI
Apache Airflow's web UI exposes a /ui/dependencies endpoint that renders the scheduling dependency graph, including trigger and sensor inter-DAG relationships serialized as dependency objects with dep.source and dep.target fields. The fix for CVE-2026-28563 applied per-DAG read ACL filtering to the top-level DAG key in the serialized response but did not propagate that filter into the dep-object fields, creating a filter bypass at the nested dependency layer. CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) describes this root cause class precisely: an authorization control is present and partially applied but does not cover all code paths through which restricted data flows. The affected product is identified by CPE cpe:2.3:a:apache_software_foundation:apache_airflow:*:*:*:*:*:*:*:* across all versions prior to 3.3.0. Airflow's DAG-level RBAC scoping, intended to isolate teams within shared Airflow deployments, is the security boundary being bypassed.
RemediationAI
Upgrade to apache-airflow 3.3.0 or later, which extends the CVE-2026-28563 filter to cover dep.source and dep.target fields in trigger and sensor dependency entries. The upstream fix is merged in GitHub PR https://github.com/apache/airflow/pull/67627. For deployments unable to upgrade immediately, a targeted compensating control is to restrict access to the /ui/dependencies endpoint at the reverse proxy layer (e.g., Nginx deny directive or Apache Require directive scoped to privileged roles only); this disables the dependency graph UI for all users and may impact operational visibility. A lower-impact alternative is to audit DAG naming conventions and remove sensitive information from DAG identifiers themselves, which reduces the value of enumeration without disrupting UI functionality. Vendor advisory: https://lists.apache.org/thread/wzc8nflg94rq6w8f5tvtlo0o3g4wjrfl.
More in Apache Airflow
View allRemote code execution in Apache Airflow before 3.3.0 lets a DAG author embed a malicious trigger whose attacker-controll
Unsafe deserialization in Apache Airflow 3.3.0's Task SDK allows an authenticated DAG author to cause arbitrary module i
Unsafe deserialization in Apache Airflow 3.0.0 through 3.3.0 allows any DAG author to achieve arbitrary code execution i
Remote code execution in Apache Airflow 3.1.x allows authenticated DAG Authors to execute arbitrary code in the webserve
Command injection in Apache Airflow's BashOperator documentation example allows authenticated attackers to escalate priv
We need to produce a JSON object per the instructions. Let's analyze each field. First, product_name: "1-3 words ONLY.
CVE-2026-30911 is a security vulnerability (CVSS 8.1) that allows any authenticated task instance. High severity vulnera
Information disclosure in Apache Airflow 3.0.0 through 3.1.x stems from incomplete secret masking and under-documented w
Apache Airflow 3.0.0 through 3.1.x exposes JWT authentication tokens in application logs, allowing any authenticated UI
CVE-2026-28779 is a security vulnerability (CVSS 7.5) that allows any application co-hosted under the same domain. High
Apache Airflow before 3.2.0 exposes SQL exception stack traces through API responses despite api/expose_stack_traces=fal
Apache Airflow 3.0.x prior to 3.2.0 allows remote unauthenticated attackers to trigger unauthorized DAG (Directed Acycli
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42025
GHSA-3322-mjxh-9mp5