CVE-2026-68076
Apache Airflow vulnerability analysis and mitigation

Overview

CVE-2026-68076 is an authorization bypass vulnerability in Apache Airflow's environment-variable secrets backend that allows an authenticated user of one team to resolve another team's Connection or Variable in multi-team mode. The flaw affects all Apache Airflow versions prior to 3.3.1 and was disclosed on August 12, 2026. It carries a CVSS v3.1 base score of 5.4 (Medium), classified under CWE-639 (Authorization Bypass Through User-Controlled Key) (Github Advisory, Apache Advisory).

Technical details

The root cause is a defective guard (_is_team_specific_accessed_as_global) in Airflow's environment-variable secrets backend (CWE-639). The guard had two critical gaps: its regex pattern _[^_]+___.+ could not match team names containing underscores (which are permitted by the ^[a-zA-Z0-9_-]{3,50}$ naming rule), and it only executed when no team scope was supplied — meaning it was entirely skipped when a team context was active. When the guard failed to apply, a missed team-scoped lookup fell through to an unconditional os.environ.get(PREFIX + id.upper()) call, which resolved the stored AIRFLOW_CONN__<TEAM>___<ID> environment variable regardless of which team initiated the request. A secondary ambiguity exists because a team name may itself contain the ___ separator, making the environment variable name for one team's connection byte-identical to another team's, exploitable even through the team-scoped lookup path (GitHub PR #70736, GitHub PR #70902).

Impact

An authenticated user belonging to one team can trigger POST /api/v2/connections/test to resolve and use another team's stored credentials (Connections and Variables) without those credentials being directly returned to the attacker — the endpoint authenticates outward using the resolved credentials. This constitutes a cross-team credential abuse scenario with low confidentiality impact (credentials are used, not directly exposed) and low availability impact. The vulnerability is scoped to multi-team Airflow deployments where team-scoped secrets are provisioned as environment variables, limiting the blast radius to such configurations (Github Advisory, Apache Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation as of the disclosure date (Github Advisory). The EPSS score is approximately 0.22–0.34%, placing it in the lower percentiles for near-term exploitation likelihood. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires a specific non-default configuration: [core] multi_team must be enabled, [core] test_connection must be explicitly set to Enabled (it ships as Disabled), team-scoped secrets must be provisioned as environment variables in the API-server process, and the attacker must know the encoded connection identifier of the target team (Apache Advisory).

Exploitation steps

  1. Reconnaissance: Identify an Apache Airflow deployment running a version prior to 3.3.1 with [core] multi_team = True and [core] test_connection = Enabled configured.
  2. Authenticate: Log in to the Airflow API as a legitimate user belonging to any team within the multi-team deployment.
  3. Enumerate target connection identifier: Determine or guess the encoded identifier of a Connection belonging to another team. The environment variable follows the pattern AIRFLOW_CONN__<TEAM>___<ID> (uppercased). Knowledge of team names and connection IDs — particularly those with underscores in the team name — is required.
  4. Craft the API request: Send a POST /api/v2/connections/test request supplying the target team's connection identifier. Due to the guard bypass, the secrets backend resolves the other team's environment variable instead of the caller's own.
  5. Trigger cross-team credential use: The API endpoint uses the resolved credentials to authenticate outward to the configured external service (e.g., a database or cloud provider), effectively acting as the target team without directly returning the credential value to the attacker (Github Advisory, GitHub PR #70736).

Indicators of compromise

  • Logs: Airflow API server logs showing POST /api/v2/connections/test requests from users whose team does not match the team namespace embedded in the connection identifier being tested; repeated test-connection calls targeting connection IDs with underscore-containing team prefixes.
  • Network: Outbound authentication attempts to external services (databases, cloud APIs, etc.) initiated by the Airflow API server process that do not correspond to the requesting user's team's expected connections.
  • Configuration Audit: Presence of both [core] multi_team = True and [core] test_connection = Enabled in airflow.cfg, combined with team-scoped secrets provisioned as AIRFLOW_CONN__<TEAM>___<ID> environment variables in the API-server process environment.

Mitigation and workarounds

Upgrade to apache-airflow 3.3.1 or later, which contains fixes from PRs #70736 and #70902 that invert the lookup order, widen the separator check, and refuse any secret ID containing the ___ separator before either lookup path (Apache Advisory, GitHub PR #70736). If immediate upgrade is not possible, set [core] test_connection = Disabled (the default) to block the vulnerable endpoint entirely. Additionally, review whether team-scoped secrets must be provisioned as environment variables in the API-server process, and consider migrating to an alternative secrets backend to reduce exposure.

Additional resources


SourceThis report was generated using AI

Related Apache Airflow vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-67587HIGH8.8
  • Apache Airflow logoApache Airflow
  • apache-airflow
NoYesAug 12, 2026
CVE-2026-68968HIGH7.5
  • Apache Airflow logoApache Airflow
  • airflow
NoYesAug 12, 2026
CVE-2026-68970MEDIUM6.5
  • Apache Airflow logoApache Airflow
  • apache-airflow
NoYesAug 12, 2026
CVE-2026-68969MEDIUM6.5
  • Apache Airflow logoApache Airflow
  • apache-airflow
NoYesAug 12, 2026
CVE-2026-68076MEDIUM5.4
  • Apache Airflow logoApache Airflow
  • airflow
NoYesAug 12, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management