Description
Apache Airflow's Task SDK rebuilt a `Callback` object from serialized data by re-running its constructor, which imports the module named by the stored callback path. Because `SyncCallback` is itself an Airflow class it passes the default `allowed_deserialization_classes` allow-list, so tightening that setting does not help. A Dag author — who controls a task instance's `next_kwargs` through the task execution API — can therefore cause an arbitrary module to be imported inside the scheduler process, when the scheduler's `awaiting_input` timeout sweep deserializes that value. No non-default configuration is required; the sweep runs unconditionally. Versions before 3.3.0 are not affected: the class existed, but the scheduler sweep that reaches it did not. This is a separate code path from CVE-2026-58076 and CVE-2026-67260, which cover different gadgets reaching deserialization — applying either of those fixes does not address this one. Users are advised to upgrade to apache-airflow 3.3.1 or later.
Published: 2026-08-12
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Apache Airflow Task SDK reconstructs a Callback object from serialized data by re-running its constructor, importing the module named by the callback path. Because the SyncCallback class is within Airflow itself, it passes the default allowed‑deserialization classes allow‑list, so tightening that setting does not mitigate the flaw. A DAG author—who can supply arbitrary next_kwargs through the task execution API—can therefore trigger the scheduler to import an arbitrary module when the scheduler’s unconditionally running timeout sweep deserializes that value. This ability to load and execute code in the scheduler process constitutes direct remote code execution.

Affected Systems

Apache Airflow versions 3.3.0 and any versions following until 3.3.1 are affected; prior to 3.3.0 versions are not vulnerable. The flaw is tied to the scheduler sweep that first appears in 3.3.0, and the upstream advisory recommends upgrading to 3.3.1 or later to remove the vulnerability.

Risk and Exploitability

The CVSS score is 8.8 and the EPSS score is < 1%. The vulnerability is not listed in the CISA KEV catalog. An attacker who can author DAGs or manipulate a task’s next_kwargs can trigger an arbitrary module import in the scheduler, giving them full code execution privileges on the host. The flaw does not require any configuration changes; exploitation will occur whenever the scheduler performs its standard sweep. Given the critical nature of the code executed inside the scheduler, the risk of successful exploitation is high for any environment where DAG authors are not tightly restricted.

Generated by OpenCVE AI on August 13, 2026 at 15:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Apache Airflow to version 3.3.1 or later immediately to eliminate the deserialization path.
  • If an immediate upgrade is not possible, restrict or remove DAG author permissions from the task execution API to prevent injection of arbitrary next_kwargs values.
  • Monitor scheduler logs for unexpected module imports and closely audit any DAG code changes to detect potential exploitation attempts.

Generated by OpenCVE AI on August 13, 2026 at 15:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 17 Aug 2026 19:15:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*

Thu, 13 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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

ssvc

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


Wed, 12 Aug 2026 19:15:00 +0000

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

Wed, 12 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description Apache Airflow's Task SDK rebuilt a `Callback` object from serialized data by re-running its constructor, which imports the module named by the stored callback path. Because `SyncCallback` is itself an Airflow class it passes the default `allowed_deserialization_classes` allow-list, so tightening that setting does not help. A Dag author — who controls a task instance's `next_kwargs` through the task execution API — can therefore cause an arbitrary module to be imported inside the scheduler process, when the scheduler's `awaiting_input` timeout sweep deserializes that value. No non-default configuration is required; the sweep runs unconditionally. Versions before 3.3.0 are not affected: the class existed, but the scheduler sweep that reaches it did not. This is a separate code path from CVE-2026-58076 and CVE-2026-67260, which cover different gadgets reaching deserialization — applying either of those fixes does not address this one. Users are advised to upgrade to apache-airflow 3.3.1 or later.
Title Apache Airflow: DAG-author remote code execution on the Scheduler via a Serde `Callback` deserialization gadget
Weaknesses CWE-502
References

cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-08-13T12:17:26.307Z

Reserved: 2026-07-29T19:47:18.427Z

Link: CVE-2026-67587

cve-icon Vulnrichment

Updated: 2026-08-13T12:17:14.682Z

cve-icon NVD

Status : Analyzed

Published: 2026-08-12T16:17:15.090

Modified: 2026-08-17T19:08:20.640

Link: CVE-2026-67587

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T15:15:13Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data