🇰🇷 한글 설명
Apache Airflow 3.3 이상 버전의 Keycloak 인증 관리자에서 세션 토큰과 Keycloak 액세스/리프레시 토큰 간의 사용자 일치 여부를 검증하지 않는 취약점이 발견되었습니다. 공격자는 자신의 유효한 세션과 타인의 Keycloak 토큰을 결합하여, 자신의 계정으로 로그인한 상태에서 타인의 권한을 행사할 수 있습니다.
💡 쉬운 설명
로그인 정보와 권한 증명서가 서로 일치하는지 확인하지 않아 발생하는 보안 결함입니다. 공격자가 자신의 아이디로 로그인한 뒤 다른 사람의 권한 열쇠를 끼워 넣어 마치 그 사람인 것처럼 행동할 수 있습니다.
🇺🇸 원문 (English)
Apache Airflow Keycloak provider: from Airflow 3.3 the Keycloak auth manager takes a user's identity from the signed Airflow session token but takes the Keycloak access and refresh tokens used for every authorization decision from separate, unauthenticated cookies, and never checks that the two describe the same subject. A user who holds any valid Airflow login of their own, together with another subject's Keycloak access or refresh token obtained out of band, can pair the two: Airflow then authorizes requests with the foreign token's privileges while the session identity, audit log and cache keys continue to name the attacker's own account. The refresh path re-issues an Airflow session token for the original identity carrying the foreign tokens, so the mismatched pairing survives across sessions.
Affects deployments running Airflow 3.3 or later with the Keycloak auth manager. Earlier versions carried the Keycloak tokens inside the signed session token, so the binding existed and was lost when they moved into separate cookies.
Users of apache-airflow-providers-keycloak are recommended to upgrade to version 0.10.0 or later, which binds the cookie-supplied tokens to the session identity.
📍 영향받는 시스템
Apache Airflow 3.3 이상 버전 및 apache-airflow-providers-keycloak 구버전
⚔️ 공격 벡터
자신의 유효한 Airflow 세션 토큰과 탈취한 타인의 Keycloak 토큰을 결합하여 권한 상승 시도
🛡️ 대응 방법
apache-airflow-providers-keycloak 패키지를 0.10.0 이상 버전으로 업그레이드
🔧 검증 코드
출력된 버전이 0.10.0 미만이면 취약한 상태이며, 0.10.0 이상이면 안전합니다.
pip show apache-airflow-providers-keycloak | grep Version
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
💻 영향받는 소프트웨어
IBM Verify Identity Access