CVE-2026-68076 json
Apache Airflow: Connections test API: team-scope guard bypass resolves another team's environment Connection
published 2026-08-12 2 mo ago modified 2026-11-03 6 d ago also BIT-airflow-2026-68076 , EUVD-2026-57265 , GHSA-75mg-c62r-v95g , PYSEC-2026-3709
- cvss
- 5.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 27%
- public exploits
- 0
- none known
Summary
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 authenticate outward with that team's credentials; the endpoint uses the credentials rather than returning them. Exploitation requires `[core] multi_team` enabled, `[core] test_connection` set to `Enabled` (it ships `Disabled`), team-scoped secrets provisioned as environment variables in the API-server process, and knowledge of the encoded identifier. Redirecting the test at an attacker-controlled host is separately blocked. Users are advised to upgrade to apache-airflow 3.3.1 or later.
Patch / fix
- pypi apache-airflow 3.3.1
- bitnami airflow 3.3.1
- Apache Software Foundation Apache Airflow 3.0.0, 3.3.1
- github.com/apache/airflow@e0cac1f commit
- github.com/apache/airflow@ed87a1a commit
- github.com/apache/airflow#70736 pull request
- github.com/apache/airflow#70886 pull request
- github.com/apache/airflow#70902 pull request
- github.com/apache/airflow/releases/tag/3.3.1 release
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.34% chance of exploitation in the next 30 days, higher than 27% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L |
| GitHub | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L |
| CNA | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L |
| OSV | 3.1 | 5.4 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | apache-airflow | <3.3.1 |
3.3.1 |
| bitnami | airflow | <3.3.1 |
3.3.1 |
Affected products
- Apache Software Foundation Apache Airflow
Classification
- Weakness
-
- CWE-639 Authorization Bypass Through User-Controlled Key
References
-
github.com
/apache/airflow/pull/70736
patch, web, issue-tracking
-
github.com
/apache/airflow/pull/70886
patch, web
-
github.com
/apache/airflow/pull/70902
patch, web, issue-tracking
-
github.com
/apache/airflow/commit/e0cac1f6b2ddd473c9e6440ee0acc32b7b6581fc
web
-
github.com
/apache/airflow/commit/ed87a1a024a55aaa494e6a718cb876f0cbe47b44
web
-
lists.apache.org
/thread/v4mc51dgmrc1t82mhzsngsgzo2gxsf2l
vendor-advisory, web, mailing-list, advisory
-
openwall.com
/lists/oss-security/2026/08/12/11
web, mailing-list, third-party-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-68076
advisory, web
-
github.com
/apache/airflow
package
-
github.com
/apache/airflow/releases/tag/3.3.1
web
-
github.com
/pypa/advisory-database/tree/main/vulns/apache-airflow/PYSEC-2026-3709.yaml
web
-
github.com
/advisories/GHSA-75mg-c62r-v95g
advisory
Sources
- CVE List CVE-2026-68076
- GitHub Advisory GHSA-75mg-c62r-v95g
- NVD CVE-2026-68076
- OSV BIT-airflow-2026-68076
- OSV PYSEC-2026-3709
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.