
PoC-репродуктор для CVE-2026-49099 (Apache Camel camel-salesforce): заголовок sObjectQuery без префикса Camel обходит фильтр HTTP-заголовков и переопределяет настроенный SOQL производителя (SOQL-инъекция / нарушение контроля доступа). Исправлено в версиях 4.14.8/4.18.3/4.21.0.
sObjectQuery в camel-salesforceГотовые к запуску proof-of-concept-репродукторы одной и той же уязвимости Apache Camel, по одному на каждый рантайм:
| Рантайм | Каталог | Стек |
|---|---|---|
| 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, ни 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
Исправление переименовывает константы заголовков в соответствии с соглашением CamelSalesforce* (например,
CamelSalesforceSObjectQuery), поэтому они отбрасываются на HTTP-границе, как и любой другой заголовок Camel*.
Рекомендации: https://camel.apache.org/security/CVE-2026-49099.html
Эти репродукторы предоставлены только для исследований в области безопасности и авторизованного тестирования — для публично раскрытой и исправленной уязвимости. Не используйте их против систем без явного разрешения.
| Свойство | Значение |
|---|
| Компонент | camel-salesforce |
| CWE | CWE-74 (Инъекция) / CWE-639 (Обход авторизации через управляемый пользователем ключ) |
| Влияние | Неаутентифицированный 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) |