# CVE-2026-54183: Apache Airflow: Airflow Variables were not masked in the UI for authenticated users

Status: published. Published: 2026-08-12. Updated: 2026-11-03.

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.

## Remediation

- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: CNA: apache) — https://github.com/apache/airflow/pull/68422

## Affected products and versions

- Apache Software Foundation / Apache Airflow (apache-airflow): ≥ 0; < 3.0.0 (affected, semver). Source: CNA: apache
- Apache Software Foundation / Apache Airflow (apache-airflow-core): ≥ 3.0.0; < 3.3.1 (affected, semver). Source: CNA: apache

## Severity and prioritization

- CVSS 3.1: 4.3 (medium); CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N; source: ADP: CISA-ADP

- CISA KEV: No listing in collected sources

- EPSS: 0.42% as of 2026-11-02; percentile 36.62%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: CWE-200

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://github.com/apache/airflow/pull/68422 (CNA: apache; patch)

- https://lists.apache.org/thread/z5mrdq6c60f2wyx4cc64cj8nv0dxd9lo (CNA: apache; vendor-advisory)

- https://www.cve.org/CVERecord?id=CVE-2026-42358 (CNA: apache; related)

## Provenance

- CNA: apache: https://www.cve.org/CVERecord?id=CVE-2026-54183; retrieved 2026-11-03; source updated 2026-11-03

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-54183; retrieved 2026-11-03; source updated Not reported

Revision: 8f1f4448bef6f5b42e2aa951512474b4ed67a91f8ab6e1647f9320bd1734a67e

Canonical: https://y2.dev/cve/CVE-2026-54183

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.