p PatchFirst

PatchFirst · Vulnerabilidades recientes

Vulnerabilidades de apache-airflow

Vulnerabilidades publicadas para apache-airflow en los últimos 30 días: 0. Incluidas en el catálogo KEV: 0.

RSS ↗
Filtrar vulnerabilidades
Borrar filtros

Vulnerabilidades: 158

  1. CVE-2026-86473

    Crítica · CVSS 9.1EPSS 0,75%Corrección disponible

    Apache Airflow: Logout ignores a presented Authorization bearer token, leaving it revocable only by expiry

    Apache Airflow: the Core API logout endpoint revokes only a session token presented as the _token cookie. When a client logs out presenting its credential as an Authorization bearer header instead, the endpoint returns its normal logout response but revokes nothing, so the token remains valid until it expires. An attacker who already holds a copy of that token keeps the victim's access after the victim has logged out and believes the session ended; the default token lifetime is 24 hours and is configurable. Affects API clients that authenticate with a bearer token rather than the browser session cookie. The attacker must already possess a co

    • Actualiza a 3.3.2
    Publicación Actualización
  2. CVE-2026-75158

    Media · CVSS 4.3EPSS 0,64%Corrección disponible

    Apache Airflow: Assets events API returns asset events for every Dag with no per-Dag authorization filter

    Apache Airflow's `/assets/events` API returned asset events for every Dag in the deployment, with no filter restricting them to the Dags the caller is authorized to read. Any authenticated user holding asset-read access could therefore enumerate asset events — including the source Dag ID, task ID, run ID and event timestamps — for Dags they have no permission to see. Because the filter was also absent from the count query, `total_entries` and pagination disclosed the existence of hidden Dags even without inspecting individual rows. Deployments are affected whenever per-Dag access control is used to separate teams or tenants; no special config

    • Actualiza a 3.3.2
    Publicación Actualización
  3. CVE-2026-82355

    Media · CVSS 4.2EPSS 0,73%Sin corrección publicada

    Apache Airflow: Session cookie silently overrides explicit Authorization bearer header, enabling session fixation

    When a request to the Airflow core API carries both a session cookie and an explicit `Authorization: Bearer` token, Airflow resolves the caller from the cookie and ignores the bearer token, inverting the intended precedence of bearer over cookie. The request then executes -- and is recorded in the audit log -- as the cookie's principal rather than the identity the client explicitly presented. Only Apache Airflow 3.3.0 and 3.3.1 are affected. Earlier releases do not contain the code path that caches the cookie-derived user, and are not vulnerable. Exploiting this requires an attacker to first place a valid session cookie of their own into th

    Publicación Actualización
  4. CVE-2026-59244

    Media · CVSS 6.5EPSS 0,23%Corrección disponible

    Apache Airflow: Secrets masker: `var.json` Variable values not masked in the Rendered Templates UI

    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 template via `var.json` was displayed in cleartext to any user with access to that task's Rendered Templates view. Users are advised to upgrade to apache-airflow 3.3.1 or later, which masks nested Variable values regardless of type.

    • Actualiza a 3.3.1
    Publicación Actualización
  5. CVE-2026-58076

    Alta · CVSS 8.8EPSS 0,48%Corrección disponible

    Apache Airflow: Unguarded import_string() of airflow_exc_ser / base_exc_ser exception nodes in BaseSerialization.deserialize enables DAG-author RCE on Scheduler / API Server

    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 imported. An operator's `executor_config` reaches that branch, so a Dag author could place a value there that causes an arbitrary callable to be imported and invoked -- for example `subprocess.check_output`, or `builtins.eval` on the `builtins`-prefixed variant. The code runs in the **Scheduler**, which reconstructs serialized Dags in its normal loop with no request involved, and in the **API server**, on any a

    • Actualiza a 3.3.1
    Publicación Actualización
  6. CVE-2026-59242

    Media · CVSS 5.4EPSS 0,53%Corrección disponible

    Apache Airflow: Arbitrary airflow.* class instantiation on the API server via the XCom deserialize endpoint

    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 with XCom write-and-read access to instantiate arbitrary `airflow.*` classes on the API server (CWE-502). An authenticated user who can write an XCom value and then read it back with `deserialize=true` triggers the unsafe instantiation. Users are advised to upgrade to apache-airflow 3.3.1 or later, which rejects reserved XCom serialization keys submitted as JSON string literals.

    • Actualiza a 3.3.1
    Publicación Actualización
  7. CVE-2026-54183

    Media · CVSS 4.3EPSS 0,42%Corrección disponible

    Apache Airflow: Airflow Variables were not masked in the UI for authenticated users

    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

    • Actualiza a 3.3.1
    Publicación Actualización
  8. CVE-2026-67260

    Alta · CVSS 7.3EPSS 0,78%Corrección disponible

    Apache Airflow: DAG-author remote code execution on the Scheduler via awaiting_input next_kwargs deserialization

    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. That sweep deserializes the task instance's `next_kwargs` without an allow-list, so a Dag author — who controls that value through the task execution API — can cause an arbitrary module import and object instantiation inside the scheduler process, or terminate the scheduler job. No non-default configuration is required: the sweep runs unconditionally every 15 seconds, and the default `allowed_deserialization_classes` setting does not cover this code path. Versions before 3.3.0 are not affected, because human-in-th

    • Actualiza a 3.3.1
    Publicación Actualización
  9. CVE-2026-67587

    Alta · CVSS 8.8EPSS 0,61%Corrección disponible

    Apache Airflow: DAG-author remote code execution on the Scheduler via a Serde `Callback` deserialization gadget

    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 unconditiona

    • Actualiza a 3.3.1
    Publicación Actualización
  10. CVE-2026-65017

    Media · CVSS 6.5EPSS 0,39%Corrección disponible

    Apache Airflow: Config API: team-scoped Celery broker secret disclosed to a Viewer (multi-team masking bypass)

    Apache Airflow's Config API did not mask team-scoped sensitive configuration values in multi-team deployments. When an administrator has enabled multi-team mode and exposed the Config API, an authenticated Viewer holding only configuration-read access — with no prior access to the secret — could read a team-scoped Celery broker URL, including its embedded credentials, in cleartext, while the equivalent global option was correctly masked. The secrets masker matched only base section and option names and did not normalize team-prefixed sections before the sensitivity check (CWE-200). This is a distinct masker bypass from CVE-2026-48828 and CVE-

    • Actualiza a 3.3.1
    Publicación Actualización
  11. CVE-2026-68968

    Alta · CVSS 7.5EPSS 0,42%Corrección disponible

    Apache Airflow: Authorization bypass in the Backfill API through conflicting interpretations of the backfill id

    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. The authorization dependency parsed it with `int()` while the route handler parsed it as pydantic's `NonNegativeInt`, which accepts values `int()` rejects (`1.0` coerces to `1`); FastAPI resolves dependencies before endpoint validation, so the two acted on different Dags. An authenticated user holding edit permission on any single Dag could therefore read, pause and cancel backfills belonging to any other Dag, including moving another Dag's queued runs to `failed`. No non-default configuration is

    • Actualiza a 3.3.1
    Publicación Actualización
  12. CVE-2026-68969

    Media · CVSS 6.5EPSS 0,36%Corrección disponible

    Apache Airflow: Bulk Variable and Connection endpoints record secret values in the audit log in cleartext

    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`). The audit-log masking recognised only top-level request fields, and a bulk request nests its entities two levels below, so no masking was applied to them. Any authenticated user with audit-log read access -- who need not hold Variables or Connections read at all -- could recover those secrets verbatim, and the Connection `extra` copy is stored unencrypted in the log while the connection table encrypts it. The Airflow UI's *Import Vari

    • Actualiza a 3.3.1
    Publicación Actualización
  13. CVE-2026-68970

    Media · CVSS 6.5EPSS 0,23%Corrección disponible

    Apache Airflow: Values of a list-shaped Variable are not masked in task logs and the Rendered Templates UI

    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. Masking was applied only when the deserialized value was a string or a dict; a list at the top level matched neither and was returned unmasked. Any authenticated user able to read the logs or rendered templates of a task that references such a Variable could recover the values, with no special configuration required. This is the list-shaped counterpart of CVE-2026-59244, whose fix covered the dict case only, so deployments that upgraded in response to

    • Actualiza a 3.3.1
    Publicación Actualización
  14. CVE-2026-68971

    Media · CVSS 6.5EPSS 0,33%Corrección disponible

    Apache Airflow: Cross-team authorization bypass in the asset materialization and dag-run result endpoints

    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. A team-aware auth manager distinguishes a team-scoped Dag from a global one by that field -- the Keycloak auth manager, for example, checks the `DAG` resource instead of `DAG:<team>` -- so the team-scoped permission that should gate the request was never consulted. In a deployment running multi-team mode with a team-aware auth manager, an authenticated user in one team could trigger Dag runs belonging to anoth

    • Actualiza a 3.3.1
    Publicación Actualización
  15. CVE-2026-68076

    Media · CVSS 5.4EPSS 0,34%Corrección disponible

    Apache Airflow: Connections test API: team-scope guard bypass resolves another team's environment Connection

    Apache Airflow's environment-variable secrets backend resolved a team-scoped Connection or Variable from the wrong team's scope. The guard meant to prevent this only ran when no team scope was supplied, and its pattern could not match a team name containing an underscore, which team names are allowed to contain. When the guard did not apply, the lookup fell through to an unconditional global read that resolved the stored `AIRFLOW_CONN__<TEAM>___<ID>` variable regardless of which team asked. In multi-team mode an authenticated user of one team could therefore have `POST /api/v2/connections/test` resolve another team's Connection and authentica

    • Actualiza a 3.3.1
    Publicación Actualización
  16. CVE-2026-33264

    Crítica · CVSS 9.8EPSS 1,65%Corrección disponible

    Apache Airflow: DAG author RCE on webserver via unrestricted import_string() in BaseSerialization.deserialize()

    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 remote code execution on the API Server / Scheduler process, crossing the Airflow security boundary that DAG-author code must never execute in those processes. Users are advised to upgrade to `apache-airflow` 3.3.0 or later. As a defense-in-depth mitigation, deployments where DAG-author trust is limited can restrict the `[core] allowed_deserialization_classes` config to a narrow allowlist.

    • Actualiza a 3.3.0
    Publicación Actualización
  17. CVE-2026-49487

    Media · CVSS 6.5EPSS 0,66%Corrección disponible

    Apache Airflow: Task-instance API exposes secrets in deferred trigger kwargs

    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. When a deferred operator passed a secret (for example a provider API key) into its trigger, any authenticated user with DAG-scoped task-instance read access for that DAG could read that secret in clear text while the task was deferred. Users should upgrade to apache-airflow 3.3.0 or later, which masks sensitive values in trigger kwargs returned by the API.

    • Actualiza a 3.3.0
    Publicación Actualización
  18. CVE-2026-48828

    Media · CVSS 6.5EPSS 0,66%Corrección disponible

    Apache Airflow: Bulk JSON Variables bypass should_hide_value_for_key - redact() called without the key

    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`) could not fire for JSON-decodable variable values. An authenticated UI/API user with bulk Variable read permission could retrieve plaintext values from JSON variables whose key would otherwise trigger redaction. Affects deployments that store sensitive values in JSON-typed Airflow Variables under secret-suffixed key names. Users are advised to upgrade to `apache-airflow` 3.3.0 or later (the fix landed on `main

    • Actualiza a 3.3.0
    Publicación Actualización
  19. CVE-2026-49296

    Media · CVSS 6.5EPSS 0,6%Corrección disponible

    Apache Airflow: Per-DAG read bypass discloses co-located DAGs' source via GET /api/v2/dagSources/{dag_id}

    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. `GET /api/v2/dagSources/{dag_id}` — and the equivalent Dag-source view in the UI — returned the entire source file without redacting Dags the caller was not authorized to read, bypassing per-DAG read authorization. Deployments that co-locate multiple Dags in a single file and rely on per-DAG access control to limit source visibility are affected; single-Dag-per-file deployments are not. Upgrade to apache-airflow 3.3.0 or later.

    • Actualiza a 3.3.0
    Publicación Actualización
  20. CVE-2026-48891

    Media · CVSS 4.3EPSS 0,64%Corrección disponible

    Apache Airflow: /ui/dependencies scheduling graph leaks unreadable Dag identifiers via trigger/sensor dep.source/dep.target

    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 trigger / sensor dependency entries. An authenticated UI user with read permission on some Dags could enumerate the identifiers of other Dags they were not authorized to read by inspecting the dependency graph for trigger / sensor references. Affects deployments that rely on per-Dag read scoping to keep Dag identifiers private across teams. This is a residual gap in the fix for CVE-2026-28563, which filtered t

    • Actualiza a 3.3.0
    Publicación Actualización

Comprueba tu servidor

Compara tu pila y las versiones instaladas con las bases actuales de vulnerabilidades.

Comprueba tu servidor →