
Reproducer für CVE-2026-48203: Apache Camel camel-solr SolrParam./SolrField. Header-Injection, die Solr-Dokumentfeld-Injection und SSRF über den shards-Parameter ermöglicht (behoben in 4.14.8/4.18.3/4.21.0)
| Laufzeitumgebung | Verzeichnis | 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 (bündelt Camel 4.20.0) |
Beide sind betroffene Versionen (behoben in 4.14.8 / 4.18.3 / 4.21.0), und beide demonstrieren denselben Fehler: Der
camel-solr-Producer kopiert jeden eingehenden Header, der mit SolrField. beginnt, in das indizierte Dokument und jeden Header,
der mit SolrParam. beginnt, in die Solr-Anfrageparameter. Diese Präfixe befinden sich nicht im Camel*-Namespace, daher
entfernt der HTTP-Grenzfilter sie nicht — ein Client eines behobenen „Notiz speichern“- / „Suchen“-Endpunkts injiziert
beliebige Dokumentfelder (CWE-74) und Solr-Anfrageparameter, einschließlich shards für Server-Side Request Forgery
(CWE-918).
Beide Varianten verwenden einen netty-http-Consumer (keinen Servlet-Container): Der SolrField. / SolrParam.-Präfixabgleich
ist case-sensitiv, und netty-http bewahrt die Groß-/Kleinschreibung von Header-Namen, wo ein Servlet-Container sie in Kleinbuchstaben umwandeln würde.
Jedes Unterverzeichnis ist ein eigenständiges Projekt (plus ein Solr-Container, der über seine docker-compose.yml gestartet wird) mit einem
eigenen Dockerfile und einer eigenen README. Kurz gesagt, für beide:
cd camel-spring-boot # oder: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Der Solr-Container läuft mit -Dsolr.disable.allowUrls=true, sodass die shards-SSRF den internen Listener erreicht;
bei einem Solr mit konfigurierten allowUrls blockiert Solrs eigene Abwehr die shards-SSRF, aber die SolrField.*-Dokumentfeld-Injektion
ist davon nicht betroffen.
| Eigenschaft | Wert |
|---|---|
| Komponente | camel-solr |
| Betroffene Klasse | org.apache.camel.component.solr.SolrProducer / SolrRequestConverter (Präfixe SolrParam. / SolrField.) |
| CWE | CWE-20 → CWE-74 (Feldinjektion) und CWE-918 (SSRF) |
| Auswirkung | Injizieren beliebiger Solr-Anfrageparameter (shards/stream.url → SSRF, qt → Admin-Handler) und beliebiger indizierter Dokumentfelder |
| Betroffene Versionen | Von 4.0.0 vor 4.14.8, von 4.15.0 vor 4.18.3, von 4.19.0 vor 4.21.0 |
| Behobene Versionen | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23597 (PR apache/camel#23410) |
| Credit | Yu Bao (PayPal) |
Diese Reproducer werden ausschließlich für Sicherheitsforschung und autorisierte Tests bereitgestellt, für eine öffentlich offengelegte und behobene Schwachstelle. Verwenden Sie sie nicht gegen Systeme ohne ausdrückliche Genehmigung.