# CVE-2026-111421: Apache Airflow Task Execution API XCom deserialization in dependency evaluation

Source: https://junglewise.ai/threats/cve-2026-111421-apache-airflow-s-task-execution-api-stored-xcom-values-written  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-09. Updated: 2026-11-09  
License: CC BY 4.0 with a link back

CVE-2026-111421 · Severity: info · Published 2026-11-09

Apache Airflow is a workflow orchestration platform that manages task scheduling and execution. When the scheduler reads task metadata values (XCom) to determine task dependencies, it was unnecessarily deserializing untrusted data, allowing a DAG author to inject malicious serialized objects that instantiate arbitrary Airflow classes with attacker-controlled arguments when the API later displays those values. This bypasses a partial fix from an earlier CVE and requires upgrading to version 3.4.0.

Technologies: [Apache Airflow](https://junglewise.ai/threats/technologies/airflow). Vendors: [Apache](https://junglewise.ai/threats/vendors/apache).

## Quick answers

**Is CVE-2026-111421 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-111421 being exploited in the wild.

**How severe is CVE-2026-111421?** Informational severity, published 9 November 2026.

**Which products and versions are affected?** Apache Airflow through 3.3.1.

**Is there a fix for CVE-2026-111421?** Yes: fixed in apache-airflow 3.4.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-111421 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-111421?** Check whether you run Apache Airflow at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in apache-airflow 3.4.0 or later

## Technical details

The vulnerability exists in how the scheduler's dependency evaluation reads XCom values through TaskInstance.xcom_pull → XComModel.deserialize_value, which calls json.loads with an XComDecoder object_hook that fully deserializes nested dicts with __classname__ keys, instantiating arbitrary Airflow classes. The scheduler only needs primitive values (boolean skip flags and task ID mappings), not deserialized objects. An incomplete prior fix (CVE-2026-59242) patched the API's direct write path but left the scheduler's read path vulnerable. The fix removes object reconstruction during scheduler-side dependency evaluation by using plain JSON deserialization for those reads only.

## Affected products

- Apache Airflow through 3.3.1

## Timeline

- 2026-11-09: disclosed

## References

- [https://pypi.python.org/](https://pypi.python.org/)
- [https://github.com/apache/airflow/pull/72718](https://github.com/apache/airflow/pull/72718)

## Related threats

- [Apache Airflow incomplete deserialization check bypass in scheduler](https://junglewise.ai/threats/cve-2026-96285-apache-airflow-3-3-1-shipped-a-fix-for-that-checks-the-scheduler)
- [Apache Airflow scheduler XCom deserialization privilege escalation](https://junglewise.ai/threats/cve-2026-86829-apache-airflow-s-scheduler-fully-deserializes-xcom-values-written)
- [Apache Airflow CLI audit log secrets exposure](https://junglewise.ai/threats/cve-2026-86468-apache-airflow-s-cli-records-its-arguments-in-the-audit-log-but)
- [Apache Airflow unsafe deserialization in deadline alert fields](https://junglewise.ai/threats/cve-2026-82337-apache-airflow-rebuilt-deadline-alert-fields-through-generic)
- [Apache Airflow Task SDK secret cache key collision in multi-team deployments](https://junglewise.ai/threats/cve-2026-76185-apache-airflow-s-task-sdk-secret-cache-built-its-keys-from-the)
