Skip to content
NewA calmer, faster ZeroHour

CVE-2026-96285

Deserialization of next_kwargs before dict check in Apache Airflow scheduler

CVSS
—
EPSS
—
Published
·
Modified
Analyze CVE-2026-96285 with Vani AIImpact, affected versions, exploitation status, mitigations and detection

Apache Airflow 3.3.1's incomplete fix for CVE-2026-67260 deserializes next_kwargs before checking if it is a dictionary, running constructors for permitted classes in the scheduler and API server. Dag authors control next_kwargs through the task execution API. No non-default configuration required. Affected users of Apache Airflow 3.3.1.

What to do: Upgrade to Apache Airflow 3.4.0 or later.

ProductAffectedFixed in
Apache Airflow3.3.13.4.0 or later
Estimated exposure
No basis for an estimate.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description · NVD

Apache Airflow 3.3.1 shipped a fix for CVE-2026-67260 that checks the scheduler's decoded `next_kwargs` value is a dictionary, but performs that check only after deserializing the whole stored payload. Deserialization reconstructs nested objects of classes permitted by the deserialization allow-list — which by default includes Airflow's own classes — and runs their constructors inside the scheduler process before the check can reject the value. A Dag author, who controls a task's `next_kwargs` through the task execution API, can therefore still trigger constructor execution in the scheduler when the `awaiting_input` timeout sweep processes the task, and in the API server when the task instance is served to a worker using an older Execution API version; no non-default configuration is required. Versions before 3.3.0 are not affected. This is an incomplete fix for CVE-2026-67260: deployments that upgraded to 3.3.1 for that issue must also upgrade to apache-airflow 3.4.0 or later.

Weakness
CWE-502

In the news

1 story