Critical severity · published Jul 7, 2026
CVE-2026-33264
Apache Airflow: DAG author RCE on webserver via unrestricted import_string() in BaseSerialization.deserialize()
9.8
CVSS
1.6%
EPSS
No
On KEV
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.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)1.6% · higher than 76% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
AA
Apache Airflow · Apache Software Foundation
before 3.3.0 · source: vendor
AI
Airflow · Apache
before 3.3.0 · source: NVD
Affected product
AA
Apache Airflow
Apache Software Foundation
More from Apache Airflow
8.8
CVE-2020-11978
Apache Airflow Command Injection
9.8
CVE-2017-17836
In Apache Airflow 1.8.2 and earlier, an experimental Airflow feature displayed authenticated cookies, as well as passwords to databases used by Airflow
9.1
CVE-2026-86473
Apache Airflow: Logout ignores a presented Authorization bearer token, leaving it revocable only by expiry
9.1
CVE-2026-42252
Apache Airflow: BashOperator Jinja2 injection via dag_run.conf — low-privilege user pattern
9.1
CVE-2025-57735
Apache Airflow: Airflow Logout Not Invalidating JWT