Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-85317 — camel-http의 OAuth2 토큰 캐시가 scope, resource 및 토큰 엔드포인트를 무시하는 CVE-2026-85317을 재현하는 실행 가능한 Spring Boot 개념 증명(proof-of-concept)과 패치된 대조 버전입니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-85317
Vulnerability AnalysisExploitationWeb Application ExploitationAuthenticationLearning & Education
GitHuboscerd/cve-2026-85317

CVE-2026-85317

camel-http의 OAuth2 토큰 캐시가 scope, resource 및 토큰 엔드포인트를 무시하는 CVE-2026-85317을 재현하는 실행 가능한 Spring Boot 개념 증명(proof-of-concept)과 패치된 대조 버전입니다.

저장소 보기
41일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-85317 — camel-http: OAuth2 토큰 캐시 혼동

camel-http의 OAuth2 클라이언트 토큰 캐시가 — JVM 전역 static 맵인데 — 항목의 키를 (uri, clientId, clientSecret)만으로 구성하여, 실제로 토큰의 형태를 결정하는 필드인 요청된 scope, 리소스 지시자(resource indicator), 토큰 엔드포인트를 누락한 Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현기입니다. 따라서 이 필드들만 다른 두 엔드포인트가 캐시 항목을 공유하게 되어, 한 엔드포인트가 다른 scope, 다른 리소스에 대해, 또는 다른 인가 서버에 의해 발급된 토큰을 제공받을 수 있었습니다 — 즉 엔드포인트가 구성된 것보다 더 넓은 권한을 지닌 요청이 되거나, 발급 대상이 아닌 곳에 토큰이 제시되는 결과를 낳습니다(CWE-524).

Spring Boot 전용. 이 재현기는 단일 Camel Spring Boot 모듈을 제공합니다. 결함은 camel-http의 OAuth2 클라이언트에 있으며, 이는 camel-quarkus-http 확장에도 존재합니다. 그러나 해당 확장의 JVM 패키징에서는 엔드포인트 수준의 oauth2* 클라이언트 옵션이 Spring Boot에서와 같은 방식으로 적용되지 않습니다(토큰 캐시를 소유하는 OAuth2 요청 인터셉터가 연결되지 않아 토큰 엔드포인트가 호출되지 않음) — 이는 CVE-2026-85251에 문서화된 것과 동일한 제약입니다. Spring Boot 모듈은 영향을 받는 동작 및 수정된 동작을 모두 보여줍니다.

런타임디렉터리스택
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-http 4.22.0 (영향받음; 4.22.1에서 수정)

시연 내용

드라이버는 수정 사항 자체의 회귀 테스트(HttpOAuth2TokenCachingTest)를 그대로 반영합니다. 프로세스 내부에서 두 개의 임시 HTTP 서버가 실행됩니다: 베어러 토큰을 발급하는 토큰 엔드포인트와, 그 토큰을 요구하는 **대상(target)**입니다. 검증기(/exploit/attack)는 다음을 수행합니다:

  1. oauth2CacheTokens=true&oauth2Scope=read로 대상에 첫 번째 요청을 보냅니다 — 토큰이 발급되고 캐시됩니다;
  2. 토큰 엔드포인트를 종료합니다;
  3. oauth2Scope=read+write만 다른, 그 외에는 동일한 두 번째 요청을 보냅니다.
  • 영향받음: 캐시 키가 scope를 무시하므로, 두 번째 요청은 캐시 적중을 얻어 read 토큰을 재사용합니다 — 토큰 엔드포인트가 사라졌음에도(새 토큰을 발급하는 것이 불가능한 상황에서도) 요청이 성공합니다.
  • 수정됨: scope가 키의 일부이므로, 두 번째 요청은 캐시를 빗나가 새 토큰을 발급하려 시도합니다; 토큰 엔드포인트가 다운된 상태에서는 연결에 실패합니다(HttpHostConnectException).
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: 2nd request 200 (reused read token); >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85317-http-oauth2-token-cache-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: 2nd request HttpHostConnectException; >>> Not exploited

취약점 요약

속성값
구성 요소camel-http (OAuth2ClientConfigurer, 토큰 캐시)
CWECWE-524 (민감한 정보를 포함하는 캐시 사용)
심각도MEDIUM
공격 벡터배포 환경에서 스코프, 리소스 지시자 또는 토큰 엔드포인트만 다른 여러 OAuth2 엔드포인트를 구성하며, 이들이 JVM 전역 토큰 캐시를 공유함
영향엔드포인트가 다른 스코프/리소스/인가 서버용으로 발급된 토큰을 제공받음 — 구성된 것보다 넓은 권한이거나, 잘못된 대상에게 토큰이 제시됨
영향받는 버전4.0.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전
수정된 버전4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24456
크레딧Claude Security Scan Tool

권고문: https://camel.apache.org/security/CVE-2026-85317.html

수정 내용

OAuth2ClientConfigurer는 캐시 키 레코드 OAuth2URIAndCredentials를 확장하여 토큰 엔드포인트, 스코프 및 리소스 지시자를 포함하도록 하므로, 해당 필드 중 하나라도 다른 엔드포인트 간에 항목이 더 이상 공유되지 않습니다.

업그레이드할 수 없는 경우 완화 방법

스코프, 리소스 지시자 또는 토큰 엔드포인트가 다른 엔드포인트를 별도의 JVM에서 실행하여 정적 캐시를 공유하지 않도록 하십시오.

면책 조항

이 저장소는 교육 및 방어 목적으로 게시됩니다: Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하며, 업그레이드로 문제가 해결되는지 검증할 수 있도록 돕기 위함입니다. 토큰 (xxx.yyy.zzz), 클라이언트 ID 및 시크릿은 무해한 자리 표시자이며 두 HTTP 서버 모두 프로세스 내에서 실행됩니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드