Apache Airflow 3.3.0 moved human-in-the-loop tasks from the triggerer to a new `awaiting_input` task state swept by the scheduler. That sweep deserializes the task instance's `next_kwargs` without an
Apache Airflow 3.3.0 moved human-in-the-loop tasks from the triggerer to a new awaiting_input task state swept by the scheduler. That sweep deserializes the task instance's next_kwargs without an allow-list, so a Dag author — who controls that value through the task execution API — can cause an arbitrary module import and object instantiation inside the scheduler process, or terminate the scheduler job. No non-default configuration is required: the sweep runs unconditionally every 15 seconds, and the default allowed_deserialization_classes setting does not cover this code path. Versions before 3.3.0 are not affected, because human-in-the-loop tasks deferred onto the triggerer instead. This is a different code path from CVE-2026-58076, which covers the same unguarded exception-node deserialization reached elsewhere — deployments that applied that fix must upgrade for this issue as well. Users are advised to upgrade to apache-airflow 3.3.1 or later.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | apache-airflow | >= 3.3.0, < 3.3.1 | 3.3.1 |
References
- https://nvd.nist.gov/vuln/detail/CVE-2026-67260
- https://github.com/apache/airflow/pull/70685
- https://github.com/apache/airflow/commit/18b622920cf0f486155075125ecdcabc752b1eca
- https://github.com/apache/airflow/commit/a1ab0653121829675ad864080d2cd9d3d1688b01
- https://github.com/apache/airflow
- https://github.com/apache/airflow/releases/tag/3.3.1
- https://github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-3707.yaml
- https://lists.apache.org/thread/vygr0fh82cjzjp5k4vtfmboxryvm3lyn
- https://www.cve.org/CVERecord?id=CVE-2026-58076
- https://github.com/advisories/GHSA-q4c3-7575-55j2
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L- Weakness (CWE)
CWE-502- Platform
- Python (PyPI)
- Package
apache-airflow- Disclosed
- 12.08.2026
- Updated
- 15.10.2026 18:17
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2026-3707 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-q4c3-7575-55j2 - CC BY 4.0
Vulnerability history: apache-airflow
All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 158
- First → latest
- 08.2018 09.2026
- Without a fix
- 4
- Exploited in attacks
- 2
Severity breakdown
- Critical 16
- High 49
- Medium 86
- Low 7
Disclosures per year
- 2018: 1
- 2019: 8
- 2020: 12
- 2021: 5
- 2022: 16
- 2023: 31
- 2024: 18
- 2025: 6
- 2026: 61
-
Apache Airflow 3.3.0 moved human-in-the-loop tasks from the triggerer to a new `awaiting_input` task state swept by the scheduler. That sweep deserializes the task instance's `next_kwargs` without an this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.