🇰🇷 한글 설명
camel-consul 컴포넌트의 ConsulRegistry가 Consul KV 저장소에서 읽은 Java 직렬화 값을 ObjectInputFilter 설정 없이 ObjectInputStream.readObject()로 역직렬화합니다. Consul KV에 쓰기 권한이 있는 공격자는 악성 직렬화 객체를 주입하여 Camel 프로세스에서 임의 코드를 실행할 수 있습니다. 이는 CVE-2024-22369, CVE-2024-23114, CVE-2026-25747과 같은 계열의 취약점입니다.
💡 쉬운 설명
Apache Camel이 Consul이라는 설정 저장소에서 데이터를 읽을 때 검증 없이 처리합니다. 저장소에 쓸 수 있는 공격자가 악성 데이터를 넣으면 서버를 장악할 수 있습니다.
🇺🇸 원문 (English)
The ConsulRegistry in the camel-consul component (class org.apache.camel.component.consul.ConsulRegistry and its inner ConsulRegistryUtils.deserialize method) read Java-serialized values from the Consul KV store and passed them to ObjectInputStream.readObject() without configuring an ObjectInputFilter. An attacker who can write to the Consul KV store backing a Camel ConsulRegistry instance could inject a malicious serialized Java object that is deserialized the next time Camel performs a lookup against that registry, leading to arbitrary code execution in the Camel process. The issue mirrors the class of vulnerability already addressed for other Camel components in CVE-2024-22369, CVE-2024-23114 and CVE-2026-25747, and was overlooked during the original remediation of those CVEs.
This issue affects Apache Camel: from 3.0.0 before 4.14.6, from 4.15.0 before 4.18.1.
Users are recommended to upgrade to version 4.19.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, then they are suggested to upgrade to 4.14.6. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.1.
📍 영향받는 시스템
Apache Camel 3.0.0 이상 4.14.6 미만, 4.15.0 이상 4.18.1 미만 (camel-consul 사용 환경)
⚔️ 공격 벡터
Consul KV 저장소에 악성 Java 직렬화 객체를 주입하고, Camel이 레지스트리를 조회할 때 역직렬화되어 원격 코드가 실행됨
🛡️ 대응 방법
Apache Camel을 4.19.0으로 업그레이드하거나, 4.14.x LTS 사용 시 4.14.6, 4.18.x 사용 시 4.18.1로 업그레이드
🔧 검증 코드
출력된 jar 파일명의 버전이 4.19.0 이상, 4.14.6 이상(4.14.x 라인), 4.18.1 이상(4.18.x 라인)이면 패치된 것이며, 그보다 낮으면 취약합니다. 아무것도 출력되지 않으면 camel-consul이 설치되어 있지 않은 것입니다.
find / -name 'camel-consul*.jar' 2>/dev/null | xargs -I{} basename {}