Skip to main content

Apache Airflow Keycloak CVE-2026-76186

| EUVDEUVD-2026-80323 CRITICAL
Reliance on Cookies without Validation and Integrity Checking (CWE-565)
9.1
CVSS 3.1 · Vendor
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with own valid Airflow login
  2. Delivery
    Obtain another subject's Keycloak token out of band
  3. Exploit
    Inject foreign token into unsigned Keycloak cookies
  4. Execution
    Airflow authorizes requests with foreign privileges
  5. Impact
    Refresh re-issues pairing, access persists under attacker's identity

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V3 - Web Frontend Security Cookie integrity validation
Exploitation Conditions

Requires all of: (1) a deployment running Airflow 3.3 or later with the Keycloak auth manager enabled (earlier versions embedded the Keycloak tokens in the signed session token and are not affected); (2) the attacker possessing their own valid Airflow session token; and (3) the attacker obtaining another subject's Keycloak access or refresh token out of band (e.g. cookie theft, MITM/proxy capture, or a shared/leaked token). Limiting factors: the foreign Keycloak token is presented to Keycloak, so a fully forged token is rejected - a genuine token belonging to someone else is what is abused; the attacker's own audit identity is retained, which paradoxically both aids evasion of authorization checks and leaves attacker attribution in logs. The opt-in Keycloak auth manager is not Airflow's default, narrowing the exposed population.

Impact

This is a genuine authorization-bypass / privilege-escalation flaw, but the raw CVSS 9.1 (AV:N/AC:L/PR:N/UI:N/C:H/I:H/A:N) overstates real-world risk because it ignores two hard preconditions in the description. Exploitation is NOT unauthenticated in practice: the attacker must already hold their own valid Airflow login AND must separately obtain another subject's Keycloak access or refresh token 'out of band.' That out-of-band token acquisition is a material access-complexity gate, so PR:N/AC:L is questionable - I assess PR:L (attacker's own session required) and AC:H (foreign token must be procured). EPSS is low at 0.21% (11th percentile), there is no CISA KEV listing and no public exploit identified at time of analysis, all consistent with a config-gated, niche-provider issue rather than mass exploitation. Signals are internally consistent (low EPSS, no KEV, no POC, patch available) - this is a real bug worth patching promptly in affected deployments, but it is a 'high CVSS, moderate real-world priority' case, not an internet-wide emergency. Note the vendor 'Information Disclosure' tag understates impact: the fix and description show authorization is made under foreign privileges (I:H), not merely data exposure.

Exploit ScenarioDerived

An authenticated Airflow user on a 3.3+ deployment using the Keycloak auth manager logs in normally, then swaps in a higher-privileged colleague's Keycloak access/refresh token (captured via cookie theft, a proxy, shared browser, or another leak) into the separate, unsigned Keycloak cookies. Airflow keeps naming the attacker's own account in the session, audit log, and cache keys while making every authorization decision with the victim's privileges, and the refresh path re-mints the pairing so it persists. No public exploit code is identified at time of analysis; the fix PR includes regression tests but not a weaponized POC.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Sep 17, 2026

Privilege escalation in the Apache Airflow Keycloak auth manager (apache-airflow-providers-keycloak) affecting Airflow 3.3 and later lets an authenticated user who already holds a valid Airflow session pair it with another subject's Keycloak access or refresh token - obtained out of band via cookie theft, proxy capture or a leaked token - so Airflow authorizes their requests with the foreign token's privileges while the audit log, cache keys and session identity continue to name the attacker's own account. The official CVSS of 9.1 overstates practical risk: exploitation requires both a valid Airflow login and a genuine (not forged) Keycloak token belonging to someone else, and the opt-in Keycloak auth manager is not Airflow's default authentication backend, so the independent assessment rates this CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N rather than AV:N/AC:L/PR:N. There is no public exploit code and no confirmed active exploitation (EPSS 0.21%, 11th percentile); upgrading the provider to 0.10.0 or later restores the subject binding between session and Keycloak tokens.

Earlier versions of this analysis (1)
v1 Sep 16, 2026 - 01:25

The Apache Airflow Keycloak provider (apache-airflow-providers-keycloak before 0.10.0), when running on Airflow 3.3 or later, performs authorization using Keycloak access and refresh tokens read from separate, unsigned cookies while taking the user's identity from the signed Airflow session token, and never verifies that both describe the same subject. Any user

RemediationAI

Vendor-released patch: upgrade apache-airflow-providers-keycloak to version 0.10.0 or later, which binds the cookie-supplied Keycloak tokens to the signed Airflow session identity; details are in the advisory at https://airflow.apache.org/, the announcement at https://lists.apache.org/thread/5cqh5ojl3718ogb0q1dcd9vdr47z7gp3 and https://seclists.org/oss-sec/2026/q3/790. The upstream change is PR https://github.com/apache/airflow/pull/72207, which compares the Keycloak token's sub claim against the authenticated user id and raises InvalidTokenError on any mismatch or unparsable token; organizations that cannot take 0.10.0 immediately can backport this subject-check to their pinned provider build. If patching is not possible, the strongest compensating control is to disable the Keycloak auth manager and fall back to Airflow's default authentication backend, which removes the affected code path entirely at the cost of losing Keycloak SSO and RBAC integration. Also revoke all outstanding Keycloak access and refresh tokens and rotate realm signing material at the Keycloak side, not merely at Airflow, because the refresh path can mint a fresh Airflow session token carrying the foreign tokens - this invalidates any credentials already captured but forcibly logs out active users. Since the precondition is cookie capture, enforce HTTPS with Secure and HttpOnly cookie flags and shorten token lifetimes to shrink the interception window, and review Airflow audit and cache logs for sessions where the recorded identity does not match the account whose Keycloak tokens were presented, plus anomalous refresh calls from unfamiliar source addresses. Each of these controls is disruptive to live SSO sessions and should be scheduled accordingly.

Affected VersionsENISA

Apache Airflow Keycloak provider 0 <0.10.0

Affected Packages

euvd apache_airflow_keycloak_provider fix: 0.10.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The Apache Airflow Keycloak provider supplies an auth manager that bridges Airflow authentication with Keycloak-issued OIDC tokens. Starting with Airflow 3.3, the provider's Keycloak JWTMiddleware stopped carrying the Keycloak access and refresh tokens inside the signed Airflow session JWT and instead stored them in separate, unsigned cookies. The Airflow session JWT remains the only artifact that establishes caller identity, while the Keycloak cookies are neither signed by Airflow nor bound to that identity - precisely the weakness class described by CWE-565 (Reliance on Cookies without Validation and Integrity Checking). Because authorization decisions were evaluated against the Keycloak token while session identity, audit trail and cache keys continued to reflect the Airflow session, the two could be assembled into a mismatched principal in which Airflow acts for the foreign subject but logs the attacker. The upstream fix (apache/airflow PR 72207) adds a _token_subject helper that decodes the Keycloak JWT payload without verifying its signature, reads the sub claim and compares it to the user id already established by the signed Airflow session, raising InvalidTokenError when the subjects differ or the token cannot be parsed; the unverified read is safe because the value is only ever compared against an identity the signed JWT already proved, and a forged token would be rejected by Keycloak when presented. The refresh path re-issued an Airflow session token for the original identity while carrying the foreign tokens, which is why the mismatched pairing survived across sessions until this binding check was introduced.

Know when Airflow gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CNA) PRIMARY 9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 6.8 MEDIUM

PR:L because the attacker needs their own valid Airflow login and AC:H because a genuine foreign Keycloak token must be obtained out of band; C:H/I:H as actions run with foreign privileges, A:N.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (CNA).

CVSS VectorVendor

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

3
Analysis Updated
Sep 17, 2026 - 20:35 vuln.today
v2 - CVSS changed
CVSS changed
Sep 17, 2026 - 20:22 NVD
9.1 (CRITICAL)
Patch available
Sep 16, 2026 - 10:02 EUVD

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Executive ViewAI

Why It Matters

A critical privilege-escalation flaw in the Apache Airflow Keycloak authentication provider (apache-airflow-providers-keycloak) on Airflow 3.3 and later could allow someone who already holds a valid Airflow session to act with another user's Keycloak privileges while audit logs, cache keys, and session records still attribute the activity to the attacker's own account, directly undermining access auditing and accountability. Exposure is confined to organizations that have opted into the Keycloak auth manager, which is not Airflow's default backend, and exploitation requires both a legitimate Airflow login and a genuine stolen Keycloak token, so practical risk is materially narrower than the headline CVSS suggests. Leadership should still care because the flaw defeats identity-based audit trails in a platform that often orchestrates sensitive data pipelines, and stolen tokens can be captured through cookie theft, proxy interception, or credential leakage for which many organizations have no detection.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Medium
Airflow widely deployed, but Keycloak auth manager is a niche opt-in provider
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2020-13927 CRITICAL POC
9.8 Nov 10

The previous default setting for Airflow's Experimental API was to allow all API requests without authentication, but th

CVE-2020-11978 HIGH POC
8.8 Jul 17

An issue was found in Apache Airflow versions 1.10.10 and below. Rated high severity (CVSS 8.8), this vulnerability is r

CVE-2021-38540 CRITICAL POC
9.8 Sep 09

The variable import endpoint was not protected by authentication in Airflow >=2.0.0, <2.1.3. Rated critical severity (CV

CVE-2020-11981 CRITICAL POC
9.8 Jul 17

An issue was found in Apache Airflow versions 1.10.10 and below. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2022-40127 HIGH POC
8.8 Nov 14

A vulnerability in Example Dags of Apache Airflow allows an attacker with UI access who can trigger DAGs, to execute arb

CVE-2022-24288 HIGH POC
8.8 Feb 25

In Apache Airflow, prior to version 2.2.4, some example DAGs did not properly sanitize user-provided params, making them

CVE-2020-17526 HIGH POC
7.7 Dec 21

Incorrect Session Validation in Apache Airflow Webserver versions prior to 1.10.14 with default config allows a maliciou

CVE-2026-82311 CRITICAL
9.8 Sep 15

Insufficient session expiration in apache-airflow-providers-fab 2.4.2 through 3.9.0 means an attacker who already holds

CVE-2026-76187 CRITICAL
9.8 Sep 15

Authentication bypass in the Apache Airflow Keycloak auth manager provider (apache-airflow-providers-keycloak below 0.10

CVE-2023-25754 CRITICAL
9.8 May 08

Privilege Context Switching Error vulnerability in Apache Software Foundation Apache Airflow.6.0. Rated critical severit

CVE-2023-22884 CRITICAL
9.8 Jan 21

Improper Neutralization of Special Elements used in a Command ('Command Injection') vulnerability in Apache Software Fou

CVE-2022-40189 CRITICAL
9.8 Nov 22

Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') vulnerability in Apache Airfl

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy