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 a
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.
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-67587
- https://github.com/apache/airflow/pull/70704
- https://github.com/apache/airflow/commit/1baee0bf987eb220f15398e43572e1ed819a0130
- https://github.com/apache/airflow/commit/2b598cb8b0570c941633be3d16a7eb912f73180c
- 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-3708.yaml
- https://lists.apache.org/thread/o00ww4n69qojvsckb464dtwd2nhzy6t0
- https://www.cve.org/CVERecord?id=CVE-2026-58076
- https://www.cve.org/CVERecord?id=CVE-2026-67260
- https://github.com/advisories/GHSA-2qjv-p2gc-mjg2
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H- 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-3708 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-2qjv-p2gc-mjg2 - 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'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 a 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.