Apache Camel security advisory: CVE-2026-48203
Severity
MEDIUMSummary
Camel-Solr: The SolrParam. and SolrField. Exchange header prefixes used non-Camel-prefixed names that bypass the HTTP header filter, allowing an HTTP client to inject Solr query parameters (server-side request forgery) and document fieldsVersions affected
From 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0.Versions fixed
4.14.8, 4.18.3 and 4.21.0Description
The camel-solr producer copies Exchange message headers whose names begin with the SolrParam. prefix into the parameters of the Solr request, and headers whose names begin with the SolrField. prefix into the fields of the indexed Solr document. The prefix constants (SolrConstants.HEADER_PARAM_PREFIX / HEADER_FIELD_PREFIX) were the plain strings SolrParam. / SolrField.. Because these names do not start with the Camel / camel prefix, HttpHeaderFilterStrategy - which blocks only the Camel header namespace on the HTTP boundary - let them pass from an inbound HTTP request straight into the Exchange. In a route that bridges an HTTP consumer (for example platform-http) into a solr: producer, any HTTP client could therefore set SolrParam.* headers to inject arbitrary Solr request parameters - including shards or stream.url, which cause the Solr server to issue server-side requests to an attacker-chosen URL (server-side request forgery, for example to an internal service or a cloud metadata endpoint), or qt to reach administrative request handlers - and set SolrField.* headers to inject arbitrary fields into indexed documents. No credentials are required when the bridging consumer is unauthenticated.Notes
The JIRA ticket: https://issues.apache.org/jira/browse/CAMEL-23597 refers to the various commits that resolved the issue, and have more details. The fix was merged on main in https://github.com/apache/camel/pull/23410 (commit 4578a9014a6b7a914cf16baf2c5bf62a7b163a88) and backported to camel-4.18.x (commit cfc0d51f015b3112eae4ce0968d045f00e95c796) and camel-4.14.x (commit f79cbe3f8bc3fe1095d8492e9ef321289451d457). The fix renames the two camel-solr Exchange header prefix values to the Camel convention - HEADER_PARAM_PREFIX from SolrParam. to CamelSolrParam., and HEADER_FIELD_PREFIX from SolrField. to CamelSolrField. - completing the alignment started in CAMEL-21697 (4.10), so they are filtered on the HTTP boundary like every other Camel control header. The Java field names are unchanged, so code referencing the constants keeps working; this is a breaking change for routes that set these headers by their raw string value (SolrParam.* / SolrField.), which must be updated to CamelSolrParam. / CamelSolrField.* (see the 4.21 upgrade guide). The issue is classified as CWE-20 (Improper Input Validation), with the demonstrated impact being CWE-74 (Improper Neutralization of Special Elements) and CWE-918 (Server-Side Request Forgery). It belongs to the same Camel header-injection family as CVE-2025-27636, CVE-2025-29891, CVE-2025-30177, CVE-2026-40453, CVE-2026-46454 and CVE-2026-47323, and shares the non-Camel-prefixed-header-constant root cause with the camel-elasticsearch SEARCH_QUERY, camel-lucene QUERY and camel-cxf operationName siblings.
Mitigation
Users are recommended to upgrade to version 4.21.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, then they are suggested to upgrade to 4.14.8. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.3. After upgrading, routes that set Solr parameters or fields via the raw header prefixes must use CamelSolrParam. / CamelSolrField. instead of SolrParam. / SolrField.. For deployments that cannot upgrade immediately, strip the SolrParam.* and SolrField.* headers from any untrusted ingress before the solr: producer, and set the required Solr parameters and fields from a trusted source in the route.Credit
This issue was discovered by Yu Bao from PayPalReferences
- PGP signed advisory data: CVE-2026-48203.txt.asc
- Mitre CVE Entry: https://www.cve.org/CVERecord?id=CVE-2026-48203