
PoC reproducer per CVE-2026-49099 (Apache Camel camel-salesforce): l'header sObjectQuery senza prefisso Camel bypassa il filtro degli header HTTP e sovrascrive la SOQL configurata dal producer (iniezione SOQL / controllo degli accessi non corretto). Corretto in 4.14.8/4.18.3/4.21.0.
sObjectQuery Iniezione dell'headerRiproduttori proof-of-concept eseguibili per la stessa vulnerabilità Apache Camel, uno per runtime:
| Runtime | Directory | Stack |
|---|---|---|
| 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 (include Camel 4.20.0) |
Entrambe sono versioni vulnerabili (corrette in 4.14.8 / 4.18.3 / 4.21.0) e dimostrano lo stesso identico difetto:
AbstractSalesforceProcessor.getParameter() risolve l'header sObjectQuery (e i suoi omologhi apexUrl, sObjectName, …) prima del valore configurato dell'endpoint. Questi nomi di header sono stringhe semplici, senza prefisso Camel, e camel-salesforce non include alcuna HeaderFilterStrategy, quindi il filtro di confine HTTP (HttpHeaderFilterStrategy, che rimuove solo Camel*) lascia passare direttamente un header HTTP in ingresso, che sovrascrive la SOQL limitata alla route — un override della query SOQL / controllo degli accessi compromesso (CWE-74 + CWE-639).
Ogni sottodirectory è un progetto autonomo con il proprio Dockerfile, docker-compose.yml e README — con un componente salesforce fittizio (stand-in) con registrazione, quindi non sono necessari un'organizzazione Salesforce, OAuth o rete. In breve, per entrambi:
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
La correzione rinomina le costanti degli header secondo la convenzione CamelSalesforce* (ad es. CamelSalesforceSObjectQuery), così questi header vengono rimossi al confine HTTP come qualsiasi altro header Camel*.
Avviso: https://camel.apache.org/security/CVE-2026-49099.html
Questi riproduttori sono forniti esclusivamente per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non utilizzarli contro sistemi senza autorizzazione esplicita.
| Proprietà | Valore |
|---|
| Componente | camel-salesforce |
| CWE | CWE-74 (Iniezione) / CWE-639 (Bypass dell'autorizzazione tramite chiave controllata dall'utente) |
| Impatto | Un client HTTP non autenticato sovrascrive i parametri SOQL/SOSL/Apex limitati alla route tramite header non filtrati, leggendo o agendo su dati al di fuori dell'ambito previsto con i permessi dell'utente di integrazione |
| Versioni interessate | Dalla 4.0.0 prima della 4.14.8, dalla 4.15.0 prima della 4.18.3, dalla 4.19.0 prima della 4.21.0 |
| Versioni corrette | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23716 (PR apache/camel#23887) |
| Crediti | Yu Bao (PayPal) |