🇰🇷 한글 설명
Apache Camel의 HTTP 서버 인증이 비-루트 context path(예: /api, /admin)에서 설정될 때, 인증 핸들러가 정확한 경로만 매칭하고 서브패스는 우회되는 취약점입니다. 공격자는 /api/route나 /admin/observe/info 같은 서브패스로 직접 요청하여 인증을 거치지 않고 보호된 엔드포인트에 접근할 수 있으며, /observe/info 엔드포인트에서 사용자, 작업 디렉토리, PID, JVM 정보 등 민감한 런타임 메타데이터를 노출받을 수 있습니다.
💡 쉬운 설명
Apache Camel 웹 서버의 인증 설정이 상위 경로만 보호하고 하위 경로(/api/route)는 보호하지 못합니다. 공격자가 /api가 아닌 /api/route로 접근하면 인증 없이 서버 정보를 얻을 수 있습니다.
🇺🇸 원문 (English)
When authentication is enabled on the Apache Camel embedded HTTP server or embedded management server (camel-platform-http-main) and a non-root context path such as /api or /admin is configured via camel.server.path or camel.management.path, the BasicAuthenticationConfigurer and JWTAuthenticationConfigurer classes derive the authentication path from properties.getPath() when camel.server.authenticationPath / camel.management.authenticationPath is not explicitly set. Combined with the Vert.x sub-router mounting model - the sub-router is mounted at _path_* and the authentication handler is registered inside the sub-router at the resolved path - this causes the authentication handler to match only the exact configured context path, not its subpaths. Unauthenticated requests to subpaths such as /api/_route_ or /admin/observe/info therefore reach protected business routes and management endpoints without being challenged for credentials. The /observe/info endpoint can disclose runtime metadata such as the user, working directory, home directory, process ID, JVM and operating system information.
This issue affects Apache Camel: from 4.14.1 before 4.14.6, from 4.18.0 before 4.18.2.
Users are recommended to upgrade to version 4.20.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, they are suggested to upgrade to 4.14.6. If users are on the 4.18.x LTS releases stream, they are suggested to upgrade to 4.18.2.
📍 영향받는 시스템
Apache Camel 4.14.1~4.14.5, 4.18.0~4.18.1
⚔️ 공격 벡터
비-루트 context path의 서브패스(/api/subpath, /admin/subpath 등)에 HTTP 요청을 전송하여 인증을 우회하고 보호된 비즈니스 엔드포인트 및 관리 엔드포인트 접근
🛡️ 대응 방법
4.20.0 이상으로 업그레이드, 또는 4.14.x LTS는 4.14.6 이상, 4.18.x LTS는 4.18.2 이상으로 업그레이드
🔧 검증 코드
pom.xml에서 camel 버전을 확인하여 4.14.6 미만, 4.18.2 미만, 또는 4.20.0 미만이면 취약합니다.
grep -E 'camel|version' pom.xml 2>/dev/null | head -5