CVE-2026-76187: Apache Airflow Keycloak provider: Any realm client's credentials mint an Airflow session JWT
Apache Airflow Keycloak provider: the unauthenticated token endpoint accepts a client-credentials grant for any confidential client registered in the Keycloak realm, not only the client configured for Airflow. No allowlist restricts which client ids may authenticate, so the credentials of an unrelated application that happens to share the realm are valid Airflow login credentials, and Airflow mints a signed session token for that application's service account. The endpoint also answers unauthenticated credential guesses against Keycloak under Airflow's identity.
Affects deployments using the Keycloak auth manager whose realm is shared with other confidential clients. The attacker needs valid credentials for any one of those clients, not for Airflow. Resource authorization is still evaluated per subject, so the access gained is whatever that service account holds, plus any endpoint gated only on being authenticated.
Users of apache-airflow-providers-keycloak are recommended to upgrade to version 0.10.0 or later, which accepts only the configured client on that grant.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
apache-airflow-providers-keycloakto a version that resolves this vulnerability.Fixed in 0.10.0
Event History
Frequently Asked Questions
Which deployments are exposed?
Deployments using the Keycloak auth manager are affected when their Keycloak realm is shared with other confidential clients. A realm containing only the client configured for Airflow does not present the unrelated-client condition described here.
What does an attacker need to exploit this?
The attacker needs valid client-credentials for any confidential client in the shared Keycloak realm; they do not need the Airflow client's credentials. Airflow then issues a signed session token for that unrelated client's service account.
What level of access does exploitation provide?
Access is evaluated as the unrelated client's service account, so the attacker receives whatever permissions that account has. They may also reach endpoints that require only an authenticated session.
What should be done if an immediate upgrade is not possible?
The provided remediation is to upgrade apache-airflow-providers-keycloak to version 0.10.0 or later. Until then, deployments should treat credentials for every confidential client sharing the realm as potential Airflow login credentials.
How can we determine whether we are affected?
Review whether Airflow uses the Keycloak auth manager and whether its configured Keycloak realm contains confidential clients other than the one configured for Airflow. If so, valid credentials for those other clients can be accepted by the affected token endpoint.