# CVE-2026-101031: Apache Airflow command injection in example_dag_decorator

Source: https://junglewise.ai/threats/cve-2026-101031-the-example-dag-decorator-example-dag-shipped-with-apache  
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-101031 · Severity: info · Published 2026-11-09

Apache Airflow is a workflow orchestration platform that runs data pipelines on worker machines. When example Dags are enabled (the default), an attacker can trigger the example_dag_decorator with a malicious URL parameter that causes the worker to execute arbitrary shell commands by exploiting IPv6 zone identifier parsing in Python's ipaddress module.

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

## Quick answers

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

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

**Which products and versions are affected?** Apache Airflow before 3.4.0.

**Is there a fix for CVE-2026-101031?** Yes: fixed in Apache Airflow 3.4.0. Until then: Disable example Dags by setting load_examples = False in the Airflow configuration, which is recommended for production deployments. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

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

**Am I affected by CVE-2026-101031?** 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

Disable example Dags by setting load_examples = False in the Airflow configuration, which is recommended for production deployments.

## Technical details

The example_dag_decorator validates an IP address fetched over HTTP using Python's ipaddress module and then inserts it into a shell command. The ipaddress module accepts IPv6 zone identifiers with arbitrary characters, allowing shell metacharacters to bypass validation. An attacker who can trigger the Dag with a custom url parameter can point it to a malicious server whose HTTP response contains shell commands that execute on the worker. This is an incomplete fix for CVE-2025-54941.

## Affected products

- Apache Airflow before 3.4.0

## Timeline

- 2026-11-09: disclosed

## References

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

## 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)
