{"id":"CVE-2026-68971","aliases":["BIT-airflow-2026-68971","GHSA-5247-m8w9-2v4m","PYSEC-2026-3994"],"url":"https://o3.security/vulnerability/CVE-2026-68971","summary":"Apache Airflow: Cross-team authorization bypass in the asset materialization and dag-run result endpoints","details":"Apache Airflow's asset materialization endpoint (`POST /api/v2/assets/{asset_id}/materialize`) and the XCom result check on `wait_dag_run_until_finished` authorized the target Dag without its team, unlike every other authorization site. A team-aware auth manager distinguishes a team-scoped Dag from a global one by that field -- the Keycloak auth manager, for example, checks the `DAG` resource instead of `DAG:<team>` -- so the team-scoped permission that should gate the request was never consulted. In a deployment running multi-team mode with a team-aware auth manager, an authenticated user in one team could trigger Dag runs belonging to another team, supplying their own `dag_run_id` and `conf`, and could read another team's XCom values. Deployments using the FAB auth manager are unaffected, as it has no multi-team support. Users are advised to upgrade to apache-airflow 3.3.1 or later, which resolves the Dag's team at both sites.","published":"2026-08-12T15:24:10.679Z","modified":"2026-10-21T02:59:05.152361825Z","cvss":{"score":6.5,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"PyPI","name":"apache-airflow","fixedVersion":"3.3.1"}],"fix":{"url":"https://github.com/apache/airflow/pull/70893","label":"apache/airflow#70893"},"references":[{"type":"WEB","url":"http://www.openwall.com/lists/oss-security/2026/08/12/15"},{"type":"WEB","url":"https://pypi.python.org"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68971.json"},{"type":"ADVISORY","url":"https://lists.apache.org/thread/kfxqqwgojdjdnt6bxg3ord4y41y334fo"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68971"},{"type":"FIX","url":"https://github.com/apache/airflow/pull/70893"},{"type":"WEB","url":"https://github.com/apache/airflow/commit/0940c4b66c270d929e9f59914c65e15bd4734680"},{"type":"WEB","url":"https://github.com/apache/airflow/commit/f81459835adb111e57b2a87f586d856395660f8a"},{"type":"PACKAGE","url":"https://github.com/apache/airflow"},{"type":"WEB","url":"https://github.com/apache/airflow/releases/tag/3.3.1"},{"type":"WEB","url":"https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-3994.yaml"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-21T02:59:05.152361825Z"}}