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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-85245 — CVE-2026-85245를 재현하는 실행 가능한 Spring Boot 개념 증명으로, camel-thrift 교차 거래소 데이터 노출 문제를 다루며, 취약 버전과 수정 버전의 비교 및 완화 방안을 포함합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-85245
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationLearning & Education
GitHuboscerd/cve-2026-85245

CVE-2026-85245

CVE-2026-85245를 재현하는 실행 가능한 Spring Boot 개념 증명으로, camel-thrift 교차 거래소 데이터 노출 문제를 다루며, 취약 버전과 수정 버전의 비교 및 완화 방안을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-85245 — camel-thrift: 교차 교환 데이터 노출 (공유 defaultInstance)

Thrift 데이터 포맷이 대상 타입의 공유 defaultInstance로 언마셜링되고(새 복사본이 아닌), 그 공유 객체를 교환 본문으로 반환하는 Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현기입니다. 인스턴스가 프로세스 전역에서 공유되기 때문에, 한 메시지를 언마셜링하는 동안 기록된 상태가 객체에 남아 동일한 타입을 사용하는 이후의 모든 메시지에 노출되었습니다. 이후 페이로드에 없는 필드는 이전 메시지의 값을 유지했으므로, 한 발신자에 속한 콘텐츠가 다른 발신자의 메시지를 처리하는 동안 읽힐 수 있었고, 동시 교환들이 서로의 부분적으로 기록된 상태를 관찰할 수 있었습니다. 동일한 라우트를 통해 둘 이상의 테넌트나 사용자에게 서비스하는 배포 환경에서는 한 당사자의 데이터가 다른 당사자에게 노출되는 것입니다.

Spring Boot 전용. camel-quarkus-thrift 확장은 존재하지 않으므로, 이 재현기는 단일 Camel Spring Boot 모듈로 제공됩니다. (결함은 런타임에 독립적인 컴포넌트의 ThriftDataFormat에 있습니다.)

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

입증 내용

라우트는 하나의 ThriftDataFormat(생성된 Thrift 타입 Work 기반)을 정의하고 일반적인 라우트처럼 모든 메시지에 재사용합니다. 두 테넌트가 이를 통해 메시지를 보냅니다:

  • 테넌트 A: Work{num1=1, op=ADD, comment="TENANT-A-SECRET-…"} — 선택적 comment 필드에 민감한 데이터가 담겨 있습니다;
  • 테넌트 B: Work{num1=3, op=SUBTRACT} — comment 필드가 없습니다.

라우트는 테넌트 A의 메시지를 언마셜링한 다음 테넌트 B의 메시지를 언마셜링합니다.

  • 영향받음: 테넌트 B의 언마셜링된 객체가 **테넌트 A의 comment**를 담은 채로 반환됩니다 — Thrift는 수신 바이트에 존재하는 필드만 할당하며, 두 메시지 모두 동일한 공유 인스턴스로 역직렬화되어 (그리고 그 인스턴스로 반환되어) B의 누락된 필드가 A의 값을 유지했기 때문입니다. 두 본문은 문자 그대로 동일한 객체입니다.
  • 수정됨: 테넌트 B의 comment는 null입니다 — 각 교환은 자체적으로 초기화된 복사본을 받습니다.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: B sees A's secret; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85245-thrift-cross-exchange-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: B's comment is null; >>> Not exploited

취약점 요약

속성값
구성 요소camel-thrift (ThriftDataFormat.unmarshal)
CWECWE-488 (잘못된 세션에 데이터 요소 노출)
심각도MEDIUM
공격 벡터하나의 라우트를 통해 동일한 Thrift 유형의 메시지 두 개를 전송하며, 이후 메시지가 필드를 생략하면 이전 메시지의 값을 상속받음
영향교환 간 / 테넌트 간 데이터 노출, 동시 교환이 서로의 부분적으로 기록된 상태를 관찰할 수 있음
영향받는 버전4.0.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전
수정된 버전4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24442
크레딧Claude Security Scan Tool

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

생성된 Thrift 유형(Work, Operation)은 Apache Camel 자체의 camel-thrift 테스트에서 가져온 공개 테스트 픽스처입니다.

수정 내용

ThriftDataFormat.unmarshal은 이제 교환별 복사본으로 역직렬화합니다: TBase instance = defaultInstance.deepCopy(); instance.clear(); — 그런 다음 바이트를 instance로 역직렬화하여 반환합니다. 각 교환은 자체적으로 초기화된 객체를 받으므로 메시지 간에 필드가 이월되지 않고 두 교환이 본문을 공유하지 않습니다.

업그레이드할 수 없는 경우의 완화 조치

데이터 포맷이 실행된 직후 역직렬화된 본문을 새 인스턴스로 복사하고, 반환된 객체에 대한 참조를 유지하지 마십시오.

면책 조항

이 저장소는 교육 및 방어 목적으로 게시됩니다: Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하며, 업그레이드가 문제를 해결하는지 검증할 수 있도록 돕기 위함입니다. "secret"은 비활성의, 조작된 마커 문자열입니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드