CVE-2026-68971 | Medium | 6.5 | — | 2026-08-12 | Apache Airflow's asset materialization endpoint (`POST /api/v2/assets/{asset_id}/materialize`) and the XCom result check on `wait_dag_run_until_finished` authorized the target Dag without its team, unlike every other authorization site. |
CVE-2026-68970 | Medium | 6.5 | — | 2026-08-12 | Apache Airflow's Task SDK did not mask the contents of a Variable whose JSON value is a list, so secrets stored in that shape appeared in cleartext in task logs and in the Rendered Templates UI. |
CVE-2026-68969 | Medium | 6.5 | — | 2026-08-12 | Apache Airflow wrote Variable values and Connection `extra` contents to the audit log in cleartext when they were submitted through the bulk endpoints (`PATCH /api/v2/variables` and `PATCH /api/v2/connections`). |
CVE-2026-68968 | High | 7.5 | — | 2026-08-12 | Apache Airflow's Backfill API authorized a request against a Dag id supplied by the caller whenever the `backfill_id` path segment failed to parse. |
CVE-2026-68076 | Medium | 5.4 | — | 2026-08-12 | Apache Airflow's environment-variable secrets backend resolved a team-scoped Connection or Variable from the wrong team's scope. |
CVE-2026-67587 | High | 8.8 | — | 2026-08-12 | 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. |
CVE-2026-67260 | High | 7.3 | — | 2026-08-12 | 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. |
CVE-2026-65017 | Medium | 6.5 | — | 2026-08-12 | Apache Airflow's Config API did not mask team-scoped sensitive configuration values in multi-team deployments. |
CVE-2026-59244 | Medium | 6.5 | — | 2026-08-12 | Apache Airflow's secrets masker did not mask `var.json` Variable values whose value is a dict in the Rendered Templates UI — the dict value failed an `isinstance(str)` guard — so a secret stored as a JSON Variable and referenced in a templ… |
CVE-2026-59242 | Medium | 5.4 | — | 2026-08-12 | Apache Airflow's XCom `GET /api/v2/{...}/xcomEntries/{key}?deserialize=true` endpoint passed a string-literal payload through `BaseXCom.deserialize_value` without the `_check_forbidden_xcom_keys` guard, allowing an authenticated API user w… |
CVE-2026-58076 | High | 8.8 | — | 2026-08-12 | Apache Airflow's serialization layer reconstructed exception nodes by calling `import_string()` on a class name taken from the serialized blob and instantiating it with arguments from the same blob, with no restriction on what could be imp… |
CVE-2026-54183 | Medium | 4.3 | — | 2026-08-12 | Apache Airflow's secrets masker hides values stored under sensitive key names when they are displayed in the UI. |
CVE-2026-49487 | Medium | 6.5 | — | 2026-07-07 | In Apache Airflow before 3.3.0, the REST API task-instance detail and list
endpoints returned a deferred task's trigger kwargs without masking. |
CVE-2026-49296 | Medium | 6.5 | — | 2026-07-07 | Before apache-airflow 3.3.0, a user authorized to read one Dag could disclose the source of other Dags co-located in the same source file. |
CVE-2026-48892 | Medium | 6.5 | — | 2026-07-07 | The Config API in Apache Airflow surfaced per-key secrets-backend overrides (environment variables like `AIRFLOW__SECRETS__BACKEND_KWARG__SECRET_ID` and `AIRFLOW__WORKERS__SECRETS_BACKEND_KWARG__SECRET_ID`) as synthetic config options whos… |
CVE-2026-48891 | Medium | 4.3 | — | 2026-07-07 | A bug in Apache Airflow's `/ui/dependencies` scheduling graph endpoint applied the caller's readable-Dag filter to the top-level serialized Dag key but still emitted referenced Dag IDs through the `dep.source` and `dep.target` fields of tr… |
CVE-2026-48828 | Medium | 6.5 | — | 2026-07-07 | The Bulk Variables API in Apache Airflow called the redactor without passing the variable's key, so the key-based `should_hide_value_for_key` check (which triggers on secret-suffixed key names like `*_password` / `*_token` / `*_secret`) co… |
CVE-2026-33264 | Critical | 9.8 | — | 2026-07-07 | A bug in `BaseSerialization.deserialize()` allowed unrestricted `import_string()` of attacker-controlled class paths when the Scheduler / API Server loaded a serialized DAG: a DAG author could embed a malicious trigger into a DAG to gain r… |
CVE-2026-49298 | High | 8.8 | — | 2026-06-01 | A bug in Apache Airflow's KubernetesExecutor caused JWT tokens used by worker pods to authenticate against the Execution API to be passed to the worker container as command-line arguments visible in the pod spec. |
CVE-2026-49267 | Medium | 5.9 | — | 2026-06-01 | Apache Airflow's EmailOperator and the underlying `airflow.utils.email` helpers established SMTP STARTTLS connections without verifying the remote certificate when the deployment used `[email] smtp_starttls=True` without `[email] smtp_ssl`. |