
CVE-2026-49099(Apache Camel camel-salesforce)용 PoC 재현기: Camel 접두사가 없는 sObjectQuery 헤더가 HTTP 헤더 필터를 우회하여 프로듀서에 구성된 SOQL을 재정의합니다(SOQL 주입 / 손상된 접근 제어). 4.14.8/4.18.3/4.21.0에서 수정되었습니다.
| 런타임 | 디렉터리 | 스택 |
|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (Camel 4.20.0 번들 포함) |
둘 다 영향을 받는 버전이며(4.14.8 / 4.18.3 / 4.21.0에서 수정됨), 동일한 결함을 보여줍니다:
AbstractSalesforceProcessor.getParameter()는 sObjectQuery 헤더(및 관련 헤더인 apexUrl,
sObjectName, …)를 엔드포인트의 구성된 값보다 앞서 해석합니다. 이러한 헤더 이름은 Camel 접두사가 없는 베어
문자열이며 camel-salesforce에는 HeaderFilterStrategy가 포함되어 있지 않습니다. 따라서 HTTP 경계 필터(HttpHeaderFilterStrategy,
Camel*만 제거)는 인바운드 HTTP 헤더가 그대로 통과하여 라우트의 범위 지정된 SOQL을 덮어쓰도록 허용합니다 —
SOQL 쿼리 재정의 / 깨진 접근 제어(CWE-74 + CWE-639)입니다.
각 하위 디렉터리는 자체 Dockerfile, docker-compose.yml 및 README를 갖춘 독립형 프로젝트이며, 레코딩
대체 salesforce 구성 요소를 포함하므로 Salesforce org, OAuth 또는 네트워크가 필요하지 않습니다. 즉, 둘 중
하나에 대해 다음을 실행하십시오:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
| 속성 | 값 |
|---|---|
| 구성 요소 | camel-salesforce |
| CWE | CWE-74 (Injection) / CWE-639 (Authorization Bypass Through User-Controlled Key) |
| 영향 | 인증되지 않은 HTTP 클라이언트가 필터링되지 않은 헤더를 통해 라우트의 범위 지정된 SOQL/SOSL/Apex 매개변수를 덮어써서, 통합 사용자의 권한으로 의도된 범위 밖의 데이터를 읽거나 조작할 수 있습니다 |
| 영향을 받는 버전 | 4.0.0부터 4.14.8 미만, 4.15.0부터 4.18.3 미만, 4.19.0부터 4.21.0 미만 |
| 수정된 버전 | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23716 (PR apache/camel#23887) |
| 크레딧 | Yu Bao (PayPal) |
수정은 헤더 상수를 CamelSalesforce* 규칙으로 변경합니다(예: CamelSalesforceSObjectQuery). 따라서
다른 모든 Camel* 헤더와 마찬가지로 HTTP 경계에서 제거됩니다.
이 재현 코드는 공개적으로 공개되었고 수정된 취약점에 대해 보안 연구 및 승인된 테스트 전용으로 제공됩니다. 명시적인 허가 없이 시스템에 사용하지 마십시오.