CVE-2026-76187: Apache Airflow Keycloak provider: Any realm client's credentials mint an Airflow session JWT
Apache Airflow Keycloak provider before 0.10.0 lets any confidential client's credentials in the realm mint an Airflow session JWT.
Improper Authentication in Apache Airflow Keycloak Provider Token Endpoint
The token endpoint in the Apache Airflow Keycloak provider (used with the Keycloak auth manager) has no allowlist restricting which client IDs may authenticate, so it accepts a client-credentials grant for any confidential client registered in the Keycloak realm, not only the client configured for Airflow. An attacker holding valid credentials for any one of those unrelated clients can send them to the unauthenticated token endpoint and receive a signed Airflow session token for that client's service account. The endpoint also answers unauthenticated credential guesses against Keycloak under Airflow's identity, making it usable as a credential-guessing oracle. Access gained is limited to what the compromised service account is authorized for, plus any endpoints gated only on being authenticated. Only deployments using the Keycloak auth manager whose realm is shared with other confidential clients are affected, and no public proof-of-concept or in-the-wild exploitation is currently known.
What to do: Upgrade apache-airflow-providers-keycloak to version 0.10.0 or later, which restricts the client-credentials grant to the configured client only. Until upgraded, isolate Airflow in a dedicated Keycloak realm (or remove other confidential clients from the shared realm) and review logs for client-credentials grants or session tokens minted from unexpected client IDs. Also monitor the token endpoint for unauthenticated credential-guessing activity and rotate any service-account credentials that may have been used against it.
| Product | Affected |
|---|---|
| Apache Airflow Keycloak provider (apache-airflow-providers-keycloak, Keycloak auth manager) | All versions prior to 0.10.0, when deployed with a Keycloak realm shared with other confidential clients |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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.
Apache Airflow Keycloak provider before 0.10.0 lets any confidential client's credentials in the realm mint an Airflow session JWT.
Today 1.6K readers · 2.5K views · 779 reads · all time 189K views