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: 2026-07-07
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Apache Airflow’s BaseSerialization.deserialize() routine permits an attacker-controlled Scheduler or API Server to execute arbitrary Python code via an unrestricted import_string() call. A DAG author can embed malicious trigger logic, causing the server to import and run any class path present in the DAG definition, thereby enabling remote code execution that bypasses Airflow’s security boundaries. The flaw is classified as CWE‑502.

Affected Systems

The vulnerability affects all deployments of Apache Airflow versions older than 3.3.0 that accept serialized DAG files from authors who are not fully trusted. Any Airflow instance running a Scheduler or API Server that processes such DAGs is at risk, regardless of the underlying operating system or cluster size. Administrators should examine all components that load or execute DAG definitions, including webserver, scheduler, and API services.

Risk and Exploitability

With a CVSS score of 9.8 the flaw is considered critical, and an EPSS score of 2 % indicates a modest but non‑negligible likelihood that it will be targeted. The vulnerability is not listed in the CISA KEV catalog. Because the attack vector involves a DAG author introducing a malicious file into the Airflow environment, it is inferable that an attacker must have the ability to submit or modify DAGs, which is often limited to a trusted, internal user base. Successful exploitation would provide the attacker with code execution on the Airflow server, allowing full system compromise.

Generated by OpenCVE AI on July 23, 2026 at 13:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to apache‑airflow 3.3.0 or later, which contains a fixed deserialize() implementation that prevents unrestricted import_string calls.
  • Configure the [core] allowed_deserialization_classes setting to a strict allowlist of approved classes, thereby blocking any untrusted import during DAG deserialization.
  • Restrict DAG‑author privileges so that only fully trusted users can submit or edit DAG files, and monitor Airflow logs for unexpected DAG loading activity to detect potential abuse.

Generated by OpenCVE AI on July 23, 2026 at 13:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 10 Jul 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache airflow
Vendors & Products Apache
Apache airflow

Tue, 07 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 07 Jul 2026 10:15:00 +0000

Type Values Removed Values Added
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.
Title Apache Airflow: DAG author RCE on webserver via unrestricted import_string() in BaseSerialization.deserialize()
Weaknesses CWE-502
References

cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-07-08T03:56:40.205Z

Reserved: 2026-03-18T10:53:38.405Z

Link: CVE-2026-33264

cve-icon Vulnrichment

Updated: 2026-07-07T12:48:06.041Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-23T13:45:03Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data