---
id: CVE-2026-68968
title: >-
  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
summary: >-
  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 …
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-436
vendor: apache
product: airflow
affected:
  - airflow < 3.3.1
patched:
  - airflow 3.3.1
published: '2026-08-12'
updated: '2026-09-16'
sourceUpdated: '2026-09-16T15:17:41.923'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-68968'
references:
  - url: 'https://github.com/apache/airflow/pull/70889'
    label: security@apache.org
  - url: 'https://lists.apache.org/thread/f9zmw6xs5b4syhwzbl6fsxm4kf2632ol'
    label: security@apache.org
  - url: 'http://www.openwall.com/lists/oss-security/2026/08/12/12'
    label: af854a3a-2127-422b-91ae-364da2661108
tags:
  - nvd
  - cve.org
  - osv
  - pip
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-08-13T12:12:32.883523Z'
epss: 0.00416
epssPercentile: 0.35619
aliases:
  - PYSEC-2026-3710
  - BIT-airflow-2026-68968
ecosystem: pip
ingestedAt: '2026-08-19T19:22:21.458Z'
---

## Overview

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.

## Affected

- `airflow < 3.3.1`

## Remediation

Upgrade past the affected range:

- `airflow 3.3.1`

## Package advisory (CVE-2026-68968)

Affected packages:

- `apache-airflow < 3.3.1`

Patched in:

- `apache-airflow 3.3.1`

Source: https://osv.dev/vulnerability/PYSEC-2026-3710
