apache-airflow: Apache Airflow Variables UI fails to mask sensitive values in deeply nested iterables
What fixes it
- 3.3.1apache-airflow, pipGitHub
- 3.3.1Apache AirflowCVE List
- 3.3.1apache-airflow, PyPIOSV
pip install "apache-airflow>=3.3.1"
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Apache Airflow's secrets masker hides values stored under sensitive key names when they are displayed in the UI. The masker's recursion-depth limit did not descend into values nested inside a list, tuple, or set beyond that limit, so an Airflow Variable holding such a deeply-nested value was shown unmasked in the Variables UI. The exposure is limited to the UI: any authenticated user who can see the Variable in the UI can already read its full value through the Variables REST API, so this does not disclose data the user could not otherwise obtain — the masking is a shoulder-surfing defense for the UI, not an access-control boundary.
This is an incomplete-fix follow-up to CVE-2026-42358, whose fix made only the dictionary walk unbounded; lists, tuples, and sets beyond the depth limit remained unmasked in the UI. Deployments that applied the CVE-2026-42358 fix should also upgrade to address this residual case. Upgrade to apache-airflow 3.3.1 or later.
Text from GitHub Advisory Database
Affected versions 53
- apache-airflow, pip< 3.3.1GitHub
- Apache Airflowaffected: all versions before 3.3.1CVE List
- apache-airflow, PyPIfrom first release, fixed in 3.3.1OSV
- apache-airflow, PyPI1.10.0OSV
- apache-airflow, PyPI1.10.1OSV
- apache-airflow, PyPI1.10.10OSV
- apache-airflow, PyPI1.10.10rc1OSV
- apache-airflow, PyPI1.10.10rc2OSV
- apache-airflow, PyPI1.10.10rc3OSV
- apache-airflow, PyPI1.10.10rc4OSV
- apache-airflow, PyPI1.10.10rc5OSV
- apache-airflow, PyPI1.10.11OSV
- apache-airflow, PyPI1.10.11rc1OSV
- apache-airflow, PyPI1.10.11rc2OSV
- apache-airflow, PyPI1.10.12OSV
- apache-airflow, PyPI1.10.12rc1OSV
- apache-airflow, PyPI1.10.12rc2OSV
- apache-airflow, PyPI1.10.12rc3OSV
- apache-airflow, PyPI1.10.12rc4OSV
- apache-airflow, PyPI1.10.13OSV
- apache-airflow, PyPI1.10.13rc1OSV
- apache-airflow, PyPI1.10.14OSV
- apache-airflow, PyPI1.10.14rc1OSV
- apache-airflow, PyPI1.10.14rc2OSV
- apache-airflow, PyPI1.10.14rc3OSV
- apache-airflow, PyPI1.10.14rc4OSV
- apache-airflow, PyPI1.10.15OSV
- apache-airflow, PyPI1.10.15rc1OSV
- apache-airflow, PyPI1.10.1b1OSV
- apache-airflow, PyPI1.10.1rc2OSV
- apache-airflow, PyPI1.10.2OSV
- apache-airflow, PyPI1.10.2b2OSV
- apache-airflow, PyPI1.10.2rc1OSV
- apache-airflow, PyPI1.10.2rc2OSV
- apache-airflow, PyPI1.10.2rc3OSV
- apache-airflow, PyPI1.10.3OSV
- apache-airflow, PyPI1.10.3b1OSV
- apache-airflow, PyPI1.10.3b2OSV
- apache-airflow, PyPI1.10.3rc1OSV
- apache-airflow, PyPI1.10.3rc2OSV
- apache-airflow, PyPI1.10.4OSV
- apache-airflow, PyPI1.10.4b2OSV
- apache-airflow, PyPI1.10.4rc1OSV
- apache-airflow, PyPI1.10.4rc2OSV
- apache-airflow, PyPI1.10.4rc3OSV
- apache-airflow, PyPI1.10.4rc4OSV
- apache-airflow, PyPI1.10.4rc5OSV
- apache-airflow, PyPI1.10.5OSV
- apache-airflow, PyPI1.10.5rc1OSV
- apache-airflow, PyPI1.10.6OSV
- apache-airflow, PyPI1.10.6rc1OSV
- apache-airflow, PyPI1.10.6rc2OSV
- apache-airflow, PyPI1.10.7OSV
References 9
- github.com/apache/airflow/pull/68422Fixvia CVE List
- github.com/apache/airflow/commit/76961a04633f8e5b72e0042b797266ba650fc47cFixvia GitHub
- github.com/apache/airflow/commit/fe09e1a9671cf901785c0d779e942b671a56f422Fixvia GitHub
- github.com/apache/airflow/releases/tag/3.3.1Fixvia GitHub
- lists.apache.org/thread/z5mrdq6c60f2wyx4cc64cj8nv0dxd9loAdvisoryvia CVE List
- github.com/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-3705.yamlAdvisoryvia GitHub
- github.com/advisories/GHSA-g4qj-5vxv-wggfAdvisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-54183Referencevia GitHub
- cve.org/CVERecord?id=CVE-2026-42358Referencevia CVE List