Home

Description

A bug in `BaseSerialization.deserialize()` allowed unrestricted `import_string()` of attacker-controlled class paths when the Scheduler / API Server loaded a serialized DAG: a DAG author could embed a malicious trigger into a DAG to gain remote code execution on the API Server / Scheduler process, crossing the Airflow security boundary that DAG-author code must never execute in those processes. Users are advised to upgrade to `apache-airflow` 3.3.0 or later. As a defense-in-depth mitigation, deployments where DAG-author trust is limited can restrict the `[core] allowed_deserialization_classes` config to a narrow allowlist.

PUBLISHED Reserved 2026-03-18 | Published 2026-07-07 | Updated 2026-07-08 | Assigner apache

Problem types

CWE-502: Deserialization of Untrusted Data

Product status

Default status
unaffected

Any version before 3.3.0
affected

Credits

Ziyu Lin finder

bugbunny.ai tool

intadd (GitHub handle: @intadd) finder

K finder

Amogh Desai (@amoghrajesh) remediation developer

Jarek Potiuk remediation developer

References

www.openwall.com/lists/oss-security/2026/07/07/1

github.com/apache/airflow/pull/66002 patch

github.com/apache/airflow/pull/68528 patch

lists.apache.org/thread/otvdw8qt2y7xy2n5nq9xby9ky4rf5ltj vendor-advisory

cve.org (CVE-2026-33264)

nvd.nist.gov (CVE-2026-33264)

Download JSON