Apache Camel Keycloak 구성 요소의 부적절한 인증, 중요한 기능에 대한 인증 누락, 안전하게 실패하지 않음('Failing Open') 취약성. Camel-keycloak의 KeycloakSecurityPolicy는 세 가지 검사를 차례로 수행하는 KeycloakSecurityProcessor.beforeProcess()를 실행하여 경로를 보호합니다. 즉, 액세스 토큰이 없는 요청을 거부한 다음 - requireRoles가 비어 있지 않은 경우에만 - 역할을 검증하고, - requirePermissions가 비어 있지 않은 경우에만 - 허용을 검증합니다.
Apache Camel Keycloak 구성 요소의 부적절한 인증, 중요한 기능에 대한 인증 누락, 안전하게 실패하지 않음('Failing Open') 취약성.
Camel-keycloak의 KeycloakSecurityPolicy는 세 가지 검사를 차례로 수행하는 KeycloakSecurityProcessor.beforeProcess()를 실행하여 경로를 보호합니다. 액세스 토큰이 없는 요청을 거부한 다음 - requireRoles가 비어 있지 않은 경우에만 - 역할의 유효성을 검사하고, 필수Permissions가 비어 있지 않은 경우에만 - 권한의 유효성을 검사합니다. 전달자 액세스 토큰(로컬 JWT의 경우 서명, 발급자 및 만료, 토큰 자체 검사의 경우 활성 상태 및 발급자)의 실제 암호화 확인은 해당 역할 및 권한 확인 내에서만 수행됩니다. KeycloakSecurityPolicy는 필수 역할 및 필수 권한을 비어 있는 상태로 기본 설정합니다. 이는 문서화된 '기본 설정'이므로 역할 및 권한 확인을 건너뛰는 방식으로 구성된 경로에서는 액세스 토큰이 확인되지 않습니다. 토큰 존재 확인은 여전히 누락된 토큰을 거부하지만 잘못된 토큰은 허용됩니다. Authorization: Bearer 헤더의 null이 아닌 모든 값(임의 문자열 또는 위조되고 서명되지 않은 JWT 포함)은 정책을 전달하고 요청은 서명, 발급자 또는 만료 확인 및 Keycloak에 대한 요청 없이 보호된 경로에 도달합니다. AllowTokenFromHeader의 기본값은 true이므로 인바운드 요청 헤더에서 토큰을 읽습니다. 이 정책 뒤에 경로를 배치하는 일반적인 이유는 경로가 서버 측 작업을 수행하기 때문이므로 우회로 인해 해당 작업에 대한 인증되지 않은 액세스가 발생합니다. 보호된 경로가 코드 실행이 가능한 생산자로 전달되는 경우 인증되지 않은 원격 코드 실행이 발생할 수 있습니다. 이 결함은 CVE-2026-23552와 무관합니다. 해당 문제는 발급자 클레임과 관련이 있으며 확인 루틴 내부에 검사를 추가하여 해결되었지만 여기서는 기본 구성에서 확인 루틴에 전혀 도달하지 않으므로 결함이 남아 있습니다. 이 문제는 Apache Camel(4.15.0 이전 4.18.3, 4.19.0 이전 4.21.0)에 영향을 미칩니다.
사용자는 문제를 해결하는 버전 4.21.0으로 업그레이드하는 것이 좋습니다. 사용자가 4.18.x 릴리스 스트림을 사용하는 경우 4.18.3으로 업그레이드하는 것이 좋습니다. 즉시 업그레이드할 수 없는 배포의 경우 토큰 확인 경로가 실행되도록 모든 KeycloakSecurityPolicy에서 비어 있지 않은 필수Roles 또는 필수권한을 구성하고, 요청 헤더에서 토큰이 예상되지 않는 경우 허용TokenFromHeader를 false로 설정하거나 정책 앞의 프레임워크 계층에서 토큰 확인을 수행합니다.
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 98.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 98.00 |
VPI 공식 vpi-v1 기준