🇰🇷 한글 설명
Apache Camel Solr 컴포넌트에서 발생하는 취약점으로, 특정 접두사(SolrParam., SolrField.)를 가진 HTTP 헤더가 적절한 검증 없이 Solr 요청 파라미터나 필드로 복사됩니다. 이를 통해 공격자는 임의의 Solr 파라미터를 주입하여 SSRF(서버 측 요청 위조) 공격을 수행하거나 인덱싱된 문서에 임의의 필드를 삽입할 수 있습니다.
💡 쉬운 설명
해커가 특수한 이름의 메시지를 보내면 시스템이 이를 잘못된 명령으로 인식하여 내부 서버에 몰래 접속하거나 데이터를 조작할 수 있는 문제입니다. 마치 배달원이 주문서에 적히지 않은 명령을 몰래 끼워 넣어 주방을 조작하는 것과 같습니다.
🇺🇸 원문 (English)
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection'), Improper Input Validation, Server-Side Request Forgery (SSRF) vulnerability in Apache Camel Solr component.
The camel-solr producer copies Exchange message headers whose names begin with the SolrParam. prefix into the parameters of the Solr request, and headers whose names begin with the SolrField. prefix into the fields of the indexed Solr document. The prefix constants (SolrConstants.HEADER_PARAM_PREFIX / HEADER_FIELD_PREFIX) were the plain strings SolrParam. / SolrField.. Because these names do not start with the Camel / camel prefix, HttpHeaderFilterStrategy - which blocks only the Camel header namespace on the HTTP boundary - let them pass from an inbound HTTP request straight into the Exchange. In a route that bridges an HTTP consumer (for example platform-http) into a solr: producer, any HTTP client could therefore set SolrParam.* headers to inject arbitrary Solr request parameters - including shards or stream.url, which cause the Solr server to issue server-side requests to an attacker-chosen URL (server-side request forgery, for example to an internal service or a cloud metadata endpoint), or qt to reach administrative request handlers - and set SolrField.* headers to inject arbitrary fields into indexed documents. No credentials are required when the bridging consumer is unauthenticated.
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. After upgrading, routes that set Solr parameters or fields via the raw header prefixes must use CamelSolrParam. / CamelSolrField. instead of SolrParam. / SolrField.. For deployments that cannot upgrade immediately, strip the SolrParam.* and SolrField.* headers from any untrusted ingress before the solr: producer, and set the required Solr parameters and fields from a trusted source in the route.
📍 영향받는 시스템
Apache Camel: 4.0.0 ~ 4.14.7, 4.15.0 ~ 4.18.2, 4.19.0 ~ 4.20.9
⚔️ 공격 벡터
인증되지 않은 HTTP 클라이언트가 SolrParam.* 또는 SolrField.* 접두사를 가진 헤더를 포함하여 요청을 전송
🛡️ 대응 방법
Apache Camel을 4.21.0, 4.14.8, 또는 4.18.3 이상의 보안 패치 버전으로 업그레이드하십시오.
🔧 검증 코드
출력된 결과에 취약한 버전 범위의 Apache Camel 버전이 포함되어 있다면 해당 시스템은 공격에 노출되어 있습니다.
mvn dependency:list | grep 'camel-core' | grep -E '4.0.0|4.14.7|4.15.0|4.18.2|4.19.0|4.20.9'