CVE-2026-49296 Apache Airflow: Per-DAG read bypass discloses co-located DAGs' source via GET /api/v2/dagSources/{dag_id}
Authorized users can view source code of unauthorized DAGs if multiple DAGs share a file, bypassing per-DAG access controls.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-49296?
CVE-2026-49296 is a medium-severity missing authorization vulnerability in Apache Airflow, published on 7 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Before apache-airflow 3.3.0, a user authorized to read one Dag could disclose the source of other Dags co-located in the same source file. `GET /api/v2/dagSources/{dag_id}` — and the equivalent Dag-source view in the UI — returned the entire source file without redacting Dags the caller was not authorized to read, bypassing per-DAG read authorization. Deployments that co-locate multiple Dags in a single file and rely on per-DAG access control to limit source visibility are affected; single-Dag-per-file deployments are not. Upgrade to apache-airflow 3.3.0 or later.
Weakness: CWE-639
Which versions are affected by CVE-2026-49296?
4 open source packages ship an affected version, including apache-airflow and airflow. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
apache-airflow PyPI | All versions | 3.3.0 |
apache-airflow PyPI | All versions | 3.3.0 |
apache-airflow PyPI | All versions | 3.3.0 |
airflow Bitnami | All versions | 3.3.0 |
Products include Apache Airflow.
How do I fix CVE-2026-49296?
Upgrade apache-airflow to 3.3.0 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2026-49296 being exploited?
There is no known exploitation of CVE-2026-49296 in the wild and no public exploit code.
Other vulnerabilities in Apache Airflow
- CVE-2020-13927 Apache Airflow's Experimental API Authentication Bypass
- CVE-2020-11978 Apache Airflow Command Injection
- CVE-2026-33264 Apache Airflow: DAG author RCE on webserver via unrestricted import_string() in BaseSerialization.deserialize()
- CVE-2023-25754 Apache Airflow: Privilege escalation using airflow logs
- CVE-2023-22884 Apache Airflow, Apache Airflow MySQL Provider: Arbitrary file read via MySQL provider in Apache Airflow
Sources
Also known as BIT-airflow-2026-49296, CLEANSTART-2026-SG17271, ECHO-b15e-988a-ec25, GHSA-4fh7-7jx4-8f6c, MINI-8wcg-48qg-c648, MINI-p547-wcxf-h3mv and 1 more.