Apache Airflow, Remote Code Execution (RCE) via Deserialization, CVE-2026-58076 (Critical) -DC-Aug2026-1514

Listen to this Post

CVE-2026-58076 details a critical deserialization vulnerability in Apache Airflow.
The flaw resides within the serialization layer used to reconstruct exception nodes.
The system calls `import_string()` using a class name extracted from the serialized blob.
It then instantiates this class with arguments also taken from the same blob.
Critically, there is no restriction on what can be imported or instantiated.
An operator’s `executor_config` field directly reaches this vulnerable branch.
Consequently, a DAG author can place a malicious payload within executor_config.
For example, an attacker could specify `subprocess.check_output` as the class.
Alternatively, `builtins.eval` can be invoked using the builtins-prefixed variant.
The malicious code executes within the Airflow Scheduler component.
The Scheduler runs in its normal loop reconstructing serialized DAGs.
This reconstruction occurs without any user request being involved.
The code also executes in the API server component.
It triggers on any authenticated read of a DAG, such as GET /api/v2/dags/{dag_id}/details.
Both the Scheduler and API server are trusted components in the Airflow model.
The security model states these components must never execute DAG-author code.
Compromise of these components exposes the metadata database credentials.
Additionally, the JWT signing secret used for authentication is exposed.
No non-default configuration is required to exploit this vulnerability.

This vulnerability represents a distinct sink from CVE-2026-33264.

The previous CVE covered only the trigger branch of the same deserializer.
Deployments that upgraded for the prior advisory remain affected.
They are still vulnerable through this newly identified exception branch.
Users must upgrade to Apache Airflow version 3.3.1 or later.
The patched version restricts the imported class to `BaseException` subclasses.

This restriction effectively blocks arbitrary callable imports.

The flaw has a high severity due to the privilege context involved.
Attackers can achieve remote code execution with minimal prerequisites.
Monitoring DAG parsing and API access logs is crucial for detection.
This vulnerability highlights the dangers of dynamic class loading in serialization.

DailyCVE Form:

Platform: Apache Airflow
Version: < 3.3.1
Vulnerability: Deserialization RCE
Severity: 9.9 Critical
date: 2026-08-12

Prediction: 2026-08-19

What Undercode Say:

Analytics and detection commands for this CVE should focus on version identification and DAG inspection. Run `pip show apache-airflow | grep Version` to verify your current installation. To hunt for suspicious `executor_config` usage across your DAG definitions, execute grep -r "executor_config" /path/to/dags/. Check for parsing anomalies that might indicate an exploit attempt using airflow dags list-import-errors. For forensic analysis of serialized DAG blobs, examine the JSON representation with `jq ‘.executor_config’ dag_file.json` to reveal any unusual class strings pointing to subprocess, builtins, or eval. Cross-reference API access logs for `GET /api/v2/dags//details` to identify unauthorized or repetitive reads by non-admin users.

Exploit: (Educational Purposes!)

To demonstrate the flaw, a DAG author can define a task with a poisoned executor_config. For instance, setting `”class”: “subprocess.check_output”` with `”args”: [[“whoami”]]` causes the Scheduler to import and execute the command, returning the output to the attacker-controlled context. An even more potent vector uses `”class”: “builtins.eval”` with "args": ["__import__('os').system('id')"], which grants arbitrary system command execution. This payload works without any special configuration, solely by leveraging the deserialization logic in the exception branch.

Protection:

Immediately upgrade to apache-airflow 3.3.1 or later, where the `import_string()` call is hardened to only allow subclasses of BaseException. If upgrading is temporarily impossible, deploy strict RBAC to limit which users can upload or modify DAGs. Implement a CI/CD pre-commit hook that scans DAG files for the string `executor_config` and rejects submissions containing suspicious class names. Additionally, configure your API gateway or WAF to inspect and block incoming DAG detail requests that contain `executor_config` with unexpected class patterns, although this is a partial workaround.

Impact:

Successful exploitation leads to a full compromise of the Airflow environment. Attackers gain the metadata database credentials, enabling them to read, modify, or delete all connection strings, variables, and task states. The JWT signing secret is also exfiltrated, allowing for session hijacking and privilege escalation. Because the code executes in the Scheduler and API server, attackers can achieve persistent remote code execution on the underlying host, pivot to worker nodes, exfiltrate sensitive business data, and disrupt scheduled workflows entirely.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: nvd.nist.gov
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top