CVE-2026-68968
Awaiting Analysis Awaiting Analysis - Queue

Apache Airflow Backfill API Authorization Bypass

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

Publication date: 2026-08-12

Last updated on: 2026-08-13

Assigner: Apache Software Foundation

Description

Apache Airflow's Backfill API authorized a request against a Dag id supplied by the caller whenever the `backfill_id` path segment failed to parse. The authorization dependency parsed it with `int()` while the route handler parsed it as pydantic's `NonNegativeInt`, which accepts values `int()` rejects (`1.0` coerces to `1`); FastAPI resolves dependencies before endpoint validation, so the two acted on different Dags. An authenticated user holding edit permission on any single Dag could therefore read, pause and cancel backfills belonging to any other Dag, including moving another Dag's queued runs to `failed`. No non-default configuration is required and backfill ids are sequential, so finding a target is trivial. Users are advised to upgrade to apache-airflow 3.3.1 or later, which parses the backfill id with the same type the routes declare.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-12
Last Modified
2026-08-13
Generated
2026-09-01
AI Q&A
2026-08-12
EPSS Evaluated
2026-08-31
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
apache airflow to 3.3.1 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-436 Product A handles inputs or steps differently than Product B, which causes A to perform incorrect actions based on its perception of B's state.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

Apache Airflow's Backfill API had a security flaw where the parsing of backfill_id in route dependencies did not match the type declared in the routes. The dependency used int() to parse backfill_id while the routes used pydantic's NonNegativeInt, which accepts values like 1.0 that int() rejects. This mismatch caused inconsistent behavior where the dependency and handler processed different DAGs.

Detection Guidance

Check Apache Airflow logs for unauthorized access to backfill APIs or unexpected DAG modifications. Review API requests with backfill_id parameters containing non-integer values like '42.0' or '42.00'.

Impact Analysis

An authenticated user with edit permission on any DAG could read, pause, or cancel backfills belonging to other DAGs. They could also move another DAG's queued runs to failed status. Since backfill IDs are sequential, finding a target is trivial.

Compliance Impact

This vulnerability allows unauthorized users with edit permissions on any DAG to access, modify, or disrupt backfills for other DAGs. This could lead to unauthorized data exposure, manipulation, or denial of service, which may violate compliance requirements under GDPR (data protection) and HIPAA (healthcare data security) by enabling unauthorized access to sensitive workflows and data.

Mitigation Strategies

Upgrade Apache Airflow to version 3.3.1 or later to ensure consistent parsing of backfill_id parameters across all components.

Chat Assistant

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

EPSS Chart