
Riproduttore per CVE-2026-48203: Apache Camel camel-solr SolrParam./SolrField. iniezione di header che consente l'iniezione di campi di documenti Solr e SSRF tramite il parametro shards (corretto in 4.14.8/4.18.3/4.21.0)
| 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) ed entrambe dimostrano il medesimo difetto: il
produttore camel-solr copia qualsiasi header in ingresso che inizia con SolrField. nel documento indicizzato e qualsiasi header
che inizia con SolrParam. nei parametri della richiesta Solr. Questi prefissi non sono nel namespace Camel*, quindi
il filtro di confine HTTP non li rimuove — un client di un endpoint "salva una nota" / "cerca" corretto inietta
campi arbitrari del documento (CWE-74) e parametri della richiesta Solr, inclusi shards per il server-side request forgery
(CWE-918).
Entrambe le varianti utilizzano un consumer netty-http (non un contenitore servlet): la corrispondenza del prefisso
SolrField. / SolrParam. è sensibile alle maiuscole/minuscole, e netty-http preserva le maiuscole/minuscole dei nomi degli header dove un contenitore servlet le convertirebbe in minuscolo.
Ogni sottodirectory è un progetto autonomo (più un contenitore Solr avviato dal suo docker-compose.yml) con il proprio
Dockerfile e README. In breve, per entrambi:
cd camel-spring-boot # oppure: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Il contenitore Solr viene eseguito con -Dsolr.disable.allowUrls=true così che l'SSRF shards raggiunga il listener interno;
su un Solr con allowUrls configurato, la difesa di Solr blocca l'SSRF shards, ma l'iniezione di campi del documento SolrField.*
non è influenzata.
| Proprietà | Valore |
|---|---|
| Componente | camel-solr |
| Classe Vulnerabile | org.apache.camel.component.solr.SolrProducer / SolrRequestConverter (prefissi SolrParam. / SolrField.) |
| CWE | CWE-20 → CWE-74 (iniezione di campi) e CWE-918 (SSRF) |
| Impatto | Iniettare parametri arbitrari della richiesta Solr (shards/stream.url → SSRF, qt → handler amministrativi) e campi arbitrari del documento indicizzato |
| Versioni Vulnerabili | 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-23597 (PR apache/camel#23410) |
| Crediti | Yu Bao (PayPal) |
Questi riproduttori sono forniti esclusivamente per ricerca sulla sicurezza e test autorizzati, per una vulnerabilità divulgata pubblicamente e corretta. Non utilizzarli contro sistemi senza esplicita autorizzazione.