CVE-2026-94386
Apache Camel: 언더키된 JVM 전역 클라이언트 자격 증명 토큰 캐시를 통한 Camel-OAuth 교차 스코프 토큰 재사용
- 게시됨
- 2026. 10. 26.
- 업데이트됨
- 2026. 10. 26.
- CNA 할당 중
- apache
- 증거 관찰됨
- 2026. 10. 30.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N낮음 · 다음 30일
- 백분위수
- 28.1%
- 모델 날짜
- 2026. 10. 31.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
Apache Camel Oauth 컴포넌트에서 민감한 정보가 포함된 캐시 사용 취약점이 발생합니다. 이 문제는 Apache Camel 4.19.0부터 4.22.2 이전 버전에 영향을 미칩니다. OAuthClientCredentialsTokenResolver는 camel-openai, camel-langchain4j-agent, camel-huggingface, camel-docling, camel-a2a, camel-spring-ai-chat 및 IBM watsonx 컴포넌트와 같이 명명된 OAuth 프로필로 아웃바운드 호출을 인증하는 컴포넌트를 대신하여, 그리고 OAuthClientAuthenticationFactory SPI를 직접 호출하는 애플리케이션을 대신하여 클라이언트 자격 증명 그랜트를 통해 OAuth 2.0 베어러 토큰을 획득합니다. 이 리졸버는 획득한 토큰을 JVM 내의 모든 리졸버 인스턴스와 모든 CamelContext가 공유하는 정적 캐시에 보관했으며, 토큰 요청에 클라이언트 시크릿과 요청된 스코프도 함께 전달됨에도 불구하고 해당 캐시의 키를 토큰 엔드포인트와 클라이언트 ID로만 구성했습니다. 따라서 토큰 엔드포인트와 클라이언트 ID는 공유하지만 서로 다른 스코프를 요청하거나 서로 다른 클라이언트 시크릿으로 인증하는 두 프로필은 동일한 캐시 항목에 매핑되었습니다. 먼저 토큰을 해석한 프로필이 해당 항목을 채웠고, 그런 다음 다른 프로필에는 토큰이 유효한 동안 자체 구성으로 토큰 요청을 수행하지 않은 채 그 토큰이 전달되었습니다. 토큰 캐싱은 기본적으로 활성화되어 있으며, 여러 프로필을 하나의 아이덴티티 공급자 클라이언트로 지정하는 것은 안전하지 않은 설정을 선택적으로 활성화하는 것이 아니라 프로필 지원의 일반적인 사용 방식입니다. 그 결과로 발생하는 것은 다른 프로필의 스코프를 위해 발급된 토큰을 포함하는 아웃바운드 요청이며, 이는 호출하는 프로필이 구성된 것보다 더 넓은 권한을 부여하거나 토큰이 발급되지 않은 서비스에 도달할 수 있습니다. 요청된 스코프로부터 토큰의 대상(audience)을 도출하는 아이덴티티 공급자의 경우, 서로 다른 스코프는 전혀 다른 서비스에 대한 토큰을 의미할 수 있습니다. 서로 다른 클라이언트 시크릿으로 구성된 프로필 역시 자체 시크릿으로 인증하지 않은 채 다른 시크릿으로 획득한 토큰을 제공받았습니다. 프로필은 신뢰할 수 있는 배포 환경에서 구성되므로 신뢰할 수 없는 입력이 캐시에 도달하지는 않습니다. 이득을 얻는 주체는 수신하도록 의도되지 않은 토큰을 받는 서비스이며, 해당 서비스가 적대적이거나 침해된 경우 자신의 스코프 내에서 그 토큰을 재생할 수 있습니다. 이 문제에 도달하려면 토큰 엔드포인트와 클라이언트 ID를 공유하면서 스코프나 클라이언트 시크릿이 다른 둘 이상의 프로필을 정의한 배포 환경이 필요합니다. 사용자는 이 문제를 수정한 버전 4.23.0으로 업그레이드할 것을 권장합니다. 사용자가 4.22.x 릴리스 스트림을 사용 중이라면 4.22.2로 업그레이드할 것을 권장합니다. 4.19.x부터 4.21.x 릴리스 라인은 이 문제가 해결되기 전에 지원이 종료되었으며 수정 사항을 받지 못하므로, 해당 버전을 사용하는 배포 환경은 지원되는 릴리스로 이동해야 합니다. 즉시 업그레이드할 수 없는 배포 환경의 경우, 다른 프로필과 토큰 엔드포인트 및 클라이언트 ID를 공유하는 모든 OAuth 프로필에서 토큰 캐싱을 비활성화하십시오. 명명된 프로필의 경우 `camel.oauth.NAME.cache-tokens=false`를, 기본 프로필의 경우 `camel.oauth.cache-tokens=false`를 설정하면 각 해석 시 해당 프로필 자체의 스코프와 클라이언트 시크릿으로 토큰을 요청하게 되지만, 매 해석마다 토큰 요청이 발생하는 비용이 따릅니다. 또는 서로 다른 스코프나 클라이언트 시크릿이 필요한 각 프로필에 대해 아이덴티티 공급자에 별도의 클라이언트를 등록하여, 그러한 두 프로필이 클라이언트 ID를 공유하지 않도록 하십시오.
소스
CVE-2026-94386에 대한 실행 가능한 Spring Boot 및 Quarkus 재현 프로그램으로, Apache Camel camel-oauth의 정적 토큰 캐시에서 발생하는 범위 간 OAuth 토큰 재사용을 시연합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.