🇰🇷 한글 설명
Apache Camel Netty HTTP 컴포넌트에서 오류 발생 시 민감한 정보가 포함된 에러 메시지가 생성되는 취약점입니다. muteException 옵션의 기본값이 false로 설정되어 있어, 라우팅 처리 중 예외가 발생하면 전체 Java 스택 트레이스가 HTTP 응답 본문에 포함되어 클라이언트에 노출됩니다.
💡 쉬운 설명
프로그램 실행 중 에러가 났을 때, 시스템의 내부 구조나 비밀번호 같은 중요한 정보가 담긴 상세한 오류 보고서가 외부로 그대로 보여지는 문제입니다. 해커는 이 정보를 이용해 시스템의 약점을 파악하고 더 큰 공격을 계획할 수 있습니다.
🇺🇸 원문 (English)
Generation of Error Message Containing Sensitive Information vulnerability in Apache Camel Netty HTTP component.
The camel-netty-http 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 because the backing field was an uninitialised primitive boolean (Java's default of 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 (via DefaultNettyHttpBinding) 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.
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-netty-http consumer (for example netty-http: http://0.0.0.0:8080/api?muteException=true , or globally via the camel.component.netty-http.configuration.mute-exception=true property), so that processing errors no longer return the stack trace to the client.
📍 영향받는 시스템
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 이상 버전으로 업그레이드하거나, muteException 옵션을 true로 명시적 설정함
🔧 검증 코드
출력된 결과에서 camel-netty-http의 버전을 확인하여 취약한 버전 범위에 해당하는지 체크함
mvn dependency:list | grep camel-netty-http