CVE-2026-113504
UnknownSummary
Apache Airflow's secrets masker stopped descending into nested structures after five levels, so a secret registered with the masker — for example a Connection password or a Variable value — that appeared more than five containers deep under non-sensitive keys was shown in cleartext in task logs and rendered template fields. A user who can read task logs or rendered templates, but is not meant to see those secrets, could read them.
Risk Assessment
A user with task-log read access can see secrets they should not have access to, leading to unauthorized access to protected resources. The risk applies to authentication data stored in nested structures.
Recommendation
Upgrade Apache Airflow to version 3.4.0 or later. Airflow 2.x users (end of life) should upgrade to Airflow 3.4.0 or later.
Other vulnerabilities in Apache Airflow
See all- CVE-2026-96285Unknown
Apache Airflow 3.3.1 contains an incomplete fix for CVE-2026-67260 — the next_kwargs type check occurs only after deserializing the whole payload, allowing constructors of allow-listed classes to run in the scheduler process. A Dag author can trigger code execution in the scheduler and API server without non-default configuration; versions before 3.3.0 are not affected.
- CVE-2026-86829Unknown
Apache Airflow's scheduler fully deserializes XCom values written by task code while evaluating task dependencies. A Dag author controlling XCom content can therefore influence data deserialized in the scheduler process, exceeding documented permissions.
- CVE-2026-86468Unknown
Apache Airflow's CLI records its arguments in the audit log but masks secrets by argument position, so some supported command shapes leave secrets in cleartext, for example a trailing `--description` on Variable commands, `--conn-extra`, and the inline `--password` of `airflow keycloak-auth-manager` commands. A user who can read audit events but is denied Variable and Connection access can retrieve those values through the event-log API.
- CVE-2026-82337Unknown
Apache Airflow rebuilt deadline alert fields through generic deserialization, which imports and instantiates the class named in the serialized Dag, in the scheduler and API server. A Dag author could cause classes within Airflow's deserialization allow list to be constructed in those processes with arguments they control. Deployments whose Dags use deadline alerts are affected; this is an incomplete fix of CVE-2026-45360, which only hardened the reference field.
- CVE-2026-76185Unknown
Apache Airflow's Task SDK secret cache built its keys from the team name and secret id with unescaped _ delimiters, so different (team, secret id) pairs could collide. In multi-team deployments a Dag author could read another team's Variable or Connection value by crafting a colliding secret id. Only deployments with both core.multi_team = True and secrets.use_cache = True are affected.
- CVE-2026-68982Unknown
Apache Airflow's CeleryExecutor ran callback workloads (ExecuteCallback, used for deadline-alert callbacks) without validating the workload's authentication token. Anyone able to write to the Celery broker could enqueue a forged callback and execute arbitrary code on every CeleryExecutor worker, without Airflow credentials. Deployments using the CeleryExecutor are affected.
- CVE-2026-50204Unknown
Apache Airflow's audit log stored Connection and Variable secret values in cleartext in the `Log.extra` column because the secrets masker matched only on configured sensitive key names. An authenticated low-privilege user with read access to the event-log / audit API — with no prior access to the affected connection or variable — could read those rows and recover the credentials verbatim.
- CVE-2026-40913Unknown
Apache Airflow's public Import Errors API returns the raw parse-failure stack trace to any user with the ImportError.can_read permission when the failing file has no registered DAG. This happens when a file fails to parse before any DAG is defined, or when all of its previously registered DAGs are removed but the parse error remains. Users who should not see that file's details can read stack traces that may expose file paths and code.
- CVE-2026-113508Unknown
Apache Airflow's logout endpoint attempted to revoke the presented token on the server, but any failure during revocation was silently ignored and logout still reported success. When the auth manager redirects logout to an external logout URL (for example the FAB or Keycloak auth managers), server-side revocation is the only thing that invalidates the Airflow token; it failed on database errors and, reliably, for tokens from an external issuer accepted via [api_auth] trusted_jwks_url whose token identifier is longer than 32 characters. Anyone holding a copy of a user's token from before logout could keep using it against the Airflow API until it expired.
- CVE-2026-111455Unknown
Apache Airflow's asynchronous connection test checked permissions when the test was queued (only create permission when the connection ID did not exist yet), but, when the test completed with commit_on_success, wrote the tested connection under that ID. A user allowed to create but not edit connections could overwrite a connection someone else had created in the meantime. Only deployments that enable the non-default [core] test_connection setting are affected.
Original NVD description (English source)
Apache Airflow's secrets masker stopped descending into nested structures after five levels, so a secret registered with the masker — for example a Connection password or a Variable value — that appeared more than five containers deep under non-sensitive keys was shown in cleartext in task logs and rendered template fields. A user who can read task logs or rendered templates, but is not meant to see those secrets, could read them. Users are advised to upgrade to apache-airflow 3.4.0 or later. Airflow 2.x is also affected; Airflow 2 has reached end of life and will not receive a fix, so Airflow 2 users should upgrade to Apache Airflow 3.4.0 or later.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

