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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-85246 — CVE-2026-85246에 대한 실행 가능한 Spring Boot 재현 프로젝트로, 소켓을 통한 camel-mina 컨슈머 예외 노출을 시연하고 muteException 수정 사항을 검증합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-85246
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringLearning & Education
GitHuboscerd/cve-2026-85246

CVE-2026-85246

CVE-2026-85246에 대한 실행 가능한 Spring Boot 재현 프로젝트로, 소켓을 통한 camel-mina 컨슈머 예외 노출을 시연하고 muteException 수정 사항을 검증합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-85246 — camel-mina: 컨슈머 정보 노출 (소켓 위로 예외가 기록됨)

Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현기입니다. 이 취약점은 Mina 컨슈머가 exchange 처리에 실패했을 때 exchange.getException()을 원격 피어에게 소켓을 통해 그대로 다시 기록했던 문제입니다. textline 코덱을 통해서는 피어에게 예외의 클래스 이름과 메시지를 넘겨주며, object 코덱을 통해서는 직렬화된 예외를 원인 체인까지 포함하여 넘겨줍니다. 실패를 유발할 수 있는 원격 피어는 배포 환경에 대한 내부 세부 정보 — 클래스 및 패키지 이름, 그리고 메시지나 중첩된 원인이 담고 있는 모든 것(실제로는 경로, 호스트 이름, 연결 세부 정보 포함) — 를 읽을 수 있었습니다. 이 컨슈머에는 이를 억제할 옵션이 없었으며, 이는 CAMEL-23651로 정렬된 HTTP 계열 컨슈머와 달랐습니다.

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

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

입증 내용

Mina TCP 컨슈머(sync=true, textline=true)가 들어오는 각 줄을 처리하다가 실패합니다 — 내부 오류가 발생하는 모든 라우트를 대신하는 것입니다. 이 라우트는 시뮬레이션된 내부 세부 정보(가짜 설정 경로 /etc/camel/secret.properties, 가짜 호스트, 마커 토큰)를 담은 메시지와 함께 IllegalStateException을 던집니다. 익스플로잇 드라이버는 일반 원격 TCP 피어입니다: 소켓을 열고 한 줄을 보낸 뒤, 컨슈머가 다시 기록하는 응답을 읽습니다.

  • 영향받는 버전: 응답은 textline 코덱에 의해 렌더링된 라우트의 예외입니다 — java.lang.IllegalStateException: INTERNAL-DETAIL-MARKER-7F3A2B config=/etc/camel/secret.properties db=internal-db.prod.svc.
  • 수정된 버전: 응답은 일반적인 java.lang.Exception: Exchange processing failed입니다 — 라우트 예외의 클래스, 메시지 또는 스택 트레이스가 없습니다 — 여전히 응답하므로 동기 피어가 타임아웃되지 않습니다.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: exception leaks over the socket; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85246-mina-info-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: generic reply; >>> Not exploited

취약점 요약

속성값
구성 요소camel-mina (MinaConsumer.messageReceived)
CWECWE-209 (민감한 정보를 포함하는 오류 메시지 생성)
심각도MEDIUM
공격 벡터원격 TCP/UDP 피어가 라우트 실패를 유발하고, 소켓을 통해 다시 전송되는 응답에서 예외를 읽음
영향정보 노출: textline 코덱을 통한 예외 클래스/메시지, 또는 object 코덱을 통한 직렬화된 예외 + 원인 체인(내부 호스트 이름, 경로, 연결 세부 정보)
영향받는 버전4.0.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전
수정된 버전4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24476
크레딧Claude Security Scan Tool

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

수정 내용

MinaConsumer는 muteException 컨슈머 옵션(기본값 true)을 추가합니다. 활성화되면 실패한 교환은 더 이상 exchange.getException()을 다시 쓰지 않고, 대신 빈 스택 트레이스를 가진 대체 Exception("Exchange processing failed")를 씁니다. 여전히 Exception이므로(object 코덱 피어도 여전히 하나를 수신함) 라우트 예외의 클래스, 메시지 또는 프레임을 담지 않습니다. 동기 피어가 타임아웃되지 않도록 응답은 여전히 작성됩니다. 이전 동작을 복원하려면 muteException=false로 설정하십시오.

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

응답 본문을 명시적으로 설정하는 onException 핸들러를 추가하여 프레임워크가 예외를 피어에게 다시 쓰지 않도록 하십시오.

면책 조항

이 저장소는 교육 및 방어 목적으로 게시됩니다. Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하며, 업그레이드가 이를 해결하는지 검증할 수 있도록 돕기 위함입니다. 실패하는 라우트의 구성 경로, 호스트 및 마커 토큰은 무해한, 가상의 로컬 픽스처입니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드