🇰🇷 한글 설명
Apache Camel Undertow 컴포넌트에서 오류 발생 시 민감한 정보가 포함된 에러 메시지가 생성되는 취약점입니다. muteException 옵션이 기본적으로 false로 설정되어 있어, 예외 발생 시 전체 Java 스택 트레이스가 클라이언트에 노출될 수 있습니다. 이로 인해 내부 호스트 이름, 파일 경로, 데이터베이스 정보 등 공격에 활용될 수 있는 내부 구조 정보가 유출될 위험이 있습니다.
💡 쉬운 설명
프로그램에 오류가 났을 때, 원래는 '문제가 발생했습니다'라고만 말해야 하는데 내부 설계도와 비밀 정보가 담긴 상세한 기술 보고서를 그대로 보여주는 문제입니다. 해커는 이 보고서를 보고 시스템의 약점을 파악하여 더 큰 공격을 계획할 수 있습니다.
🇺🇸 원문 (English)
Generation of Error Message Containing Sensitive Information vulnerability in Apache Camel Undertow Component.
The camel-undertow HTTP server consumer exposes a muteException option that controls what is returned to the client when a route processing error occurs. This option defaulted to false, whereas the other Camel HTTP server components (camel-http / camel-jetty / camel-servlet and camel-platform-http) default it to true. With muteException=false, when a request triggers an exception during route processing the consumer writes the full Throwable stack trace into the HTTP response body as text/plain instead of returning an empty body. Any unauthenticated client that can reach the endpoint and cause a processing error - for example by sending a malformed request body, an invalid parameter, or otherwise triggering a route-internal failure - therefore receives a complete Java stack trace. Such a stack trace can disclose sensitive internal information, including credentials embedded in exception messages, internal host names and IP addresses, filesystem paths, dependency and version details, database and class names, and the application's internal structure, which an attacker can use to plan further attacks. In addition, for Rest DSL consumers the muteException option was not honoured at all: the RestUndertowHttpBinding was created with a hard-coded false, so the stack trace was returned even when muteException=true had been configured.
This issue affects Apache Camel: from 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0.
Users are recommended to upgrade to version 4.21.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.8. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.3. For deployments that cannot upgrade immediately, set muteException=true explicitly on the camel-undertow consumer (for example undertow: http://0.0.0.0:8080/api?muteException=true , or globally via the camel.component.undertow.mute-exception=true property), so that processing errors no longer return the stack trace to the client; note that on affected releases this workaround does not cover Rest DSL consumers, whose binding ignores the option until the fix is applied.
📍 영향받는 시스템
Apache Camel: 4.0.0 ~ 4.14.7, 4.15.0 ~ 4.18.2, 4.19.0 ~ 4.20.x
⚔️ 공격 벡터
잘못된 요청 본문이나 매개변수를 전송하여 의도적으로 처리 오류를 유발함으로써 스택 트레이스 획득
🛡️ 대응 방법
Apache Camel을 4.21.0, 4.14.8, 또는 4.18.3 이상의 버전으로 업그레이드하거나, undertow 컴포넌트의 muteException 옵션을 true로 설정
🔧 검증 코드
출력된 결과에서 camel-undertow의 버전을 확인하여 취약한 버전 범위에 해당하는지 체크
mvn dependency:list | grep camel-undertow