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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-78162 — CVE-2026-78162에 대한 실행 가능한 개념 증명 재현기로, Spring Boot와 Quarkus 전반에 걸쳐 Apache Camel camel-hazelcast에서 발생하는 인증되지 않은 Java 역직렬화를 시연합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-78162
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationLearning & Education
GitHuboscerd/cve-2026-78162

CVE-2026-78162

CVE-2026-78162에 대한 실행 가능한 개념 증명 재현기로, Spring Boot와 Quarkus 전반에 걸쳐 Apache Camel camel-hazelcast에서 발생하는 인증되지 않은 Java 역직렬화를 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-78162 — camel-hazelcast: Java 역직렬화 필터가 없는 관리형 인스턴스

Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현 도구로, camel-hazelcast가 CVE-2026-43865 하드닝이 도달하지 못한 두 가지 구성 경로에서 JavaSerializationFilterConfig 없이 Hazelcast 인스턴스를 생성하는 문제를 다룹니다. 해당 경로에서는 Camel이 생성한 Hazelcast 멤버/클라이언트가 클러스터에서 읽은 값을 클래스 제한 없이 역직렬화하므로, 클러스터에 게시할 수 있는 공격자가 선택한 직렬화된 Java 객체를 Hazelcast의 직렬화 계층 내부에서 역직렬화되게 할 수 있습니다 — 즉 원격 코드 실행(CWE-502)입니다. Hazelcast 클러스터는 기본적으로 인증도 TLS도 활성화되어 있지 않습니다.

이 재현 도구는 두 경로 중 가장 명확한 경로를 구동합니다: ReplicatedHazelcastAggregationRepository 로, 이는 super.doStart()를 호출하지 않고 doStart()를 오버라이드하며, 영향을 받는 빌드에서는 기본 필터를 적용하지 않고 자체 로컬 멤버를 시작합니다. (형제 경로인 hazelcastMode=client용 HazelcastDefaultComponent#getOrCreateHzClientInstance()도 동일한 수정으로 커버됩니다.)

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

수정 버전 대 영향받는 버전 대조: 수정 사항은 Camel 4.18.5 / 4.22.1 / 4.23.0에 포함됩니다. Spring Boot 모듈은 영향받는 빌드(4.22.0)와 수정된 빌드(4.22.1)를 모두 실행할 수 있으므로 패치된 동작도 보여줍니다. 아직 수정된 Camel을 번들로 포함한 Camel Quarkus 릴리스는 없으므로(최신 3.29.0은 Camel 4.15.0 기반), Quarkus 모듈은 영향받는 사례만 보여줍니다.

무엇을 보여주는가

이 앱은 외부에서 제공된 HazelcastInstance가 없는 ReplicatedHazelcastAggregationRepository를 기반으로 하는 Camel 라우트를 실행하므로, 리포지토리가 자체 로컬 Hazelcast 멤버(기본 클러스터 dev, 포트 5701)를 시작합니다. 영향받는 빌드에서 해당 멤버에는 JavaSerializationFilterConfig가 없습니다.

그런 다음 공격자 클라이언트가 클러스터에 참여하여 백킹 ReplicatedMap에 직렬화된 객체를 게시합니다. Hazelcast 클라이언트는 바이트만 전송할 뿐 — 맵 값을 저장하거나 역직렬화하지 않으므로 — 발생하는 모든 역직렬화는 피해자 멤버에 귀속됩니다. 게시되는 객체는 의도적으로 무해한 마커인 com.example.PwnMarker로, 가젯 체인도 없고 명령도 실행하지 않으며, 단지 (JVM 전역 플래그를 통해) 자신의 readObject가 실행되었음을 기록할 뿐입니다. 실제 공격자는 RCE를 위해 여기에 알려진 가젯 클래스를 게시할 것이며 — 클래스가 역직렬화되었다는 사실만 입증해도 충분합니다.

수정 사항의 기본 필터는 java., javax., org.apache.camel. 클래스 이름 접두사의 화이트리스트이므로, com.example.PwnMarker는 완벽한 오라클입니다:

  • 영향받는 빌드 → 필터 없음 → PwnMarker가 역직렬화되고, 피해자 멤버에서 readObject가 실행됨 → 입증됨.
  • 수정된 빌드 → 화이트리스트가 readObject 전에 com.example.PwnMarker를 거부함 → java.lang.SecurityException: Resolving class com.example.PwnMarker is not allowed → 악용되지 않음.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

영향을 받는 빌드에서 예상되는 출력:

=== CVE-2026-78162 — camel-hazelcast ReplicatedHazelcastAggregationRepository ===
=== missing JavaSerializationFilterConfig on the Camel-built member ===

Attacker client joined the victim cluster 'dev' at 127.0.0.1:5701.
Attacker published a com.example.PwnMarker into ReplicatedMap 'aggregation'.

Result:
>>> PROVEN: the Camel-built Hazelcast member deserialized an attacker-supplied, non-whitelisted
>>> class (com.example.PwnMarker) with no JavaSerializationFilterConfig in effect — its readObject
>>> executed inside the victim. A real attacker would publish a gadget class here instead, for RCE.
>>>   PwnMarker.readObject executed inside the victim member; tag=attacker-rce-marker; thread=hz.*.partition-operation.thread-1

취약점 요약

속성값
구성 요소camel-hazelcast (camel-hazelcast-starter / camel-quarkus-hazelcast)
CWECWE-502 (신뢰할 수 없는 데이터의 역직렬화)
심각도MEDIUM
공격 벡터영향을 받는 인스턴스가 연결된 Hazelcast 클러스터에 게시할 수 있는 공격자; Camel이 구축한 멤버/클라이언트가 게시된 객체를 클래스 제한 없이 역직렬화함
영향Camel이 exchange를 처리하기 전에 Camel 프로세스 내부에서 원격 코드 실행 (gadget 클래스 경유)
영향받는 버전4.0.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전
수정된 버전4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24413, CAMEL-24420
크레딧TCBS의 cattier; Leon Zlobecki

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

수정 내용

HazelcastSerializationFilterHelper.applyDefault(...)에 ClientConfig 오버로드가 추가되었고, 이제 이전에 다루지 않았던 두 경로 — ReplicatedHazelcastAggregationRepository#doStart()와 HazelcastDefaultComponent#getOrCreateHzClientInstance() — 에서 모두 호출되므로, Camel이 직접 구축하는 모든 Hazelcast 구성이 기본 JavaSerializationFilterConfig(화이트리스트 java. / javax. / org.apache.camel., 블랙리스트 java.net.)를 갖추게 됩니다. 사용자가 제공한 Config, ClientConfig 또는 HazelcastInstance는 여전히 그대로 유지됩니다. 이 권고문은 CVE-2026-43865에 대한 불완전한 수정의 후속 조치입니다.

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

JavaSerializationFilterConfig를 포함하는 명시적 Hazelcast 구성을 제공하거나, 미리 구축된 HazelcastInstance를 주입하십시오(사용자가 제공한 구성은 Camel이 절대 덮어쓰지 않음). JVM 전역 -Djdk.serialFilter=...를 설정하고, Hazelcast 클러스터 인증과 TLS를 활성화하십시오.

면책 조항

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

도구 다운로드