Description
Improper Input Validation, Authorization Bypass Through User-Controlled Key vulnerability in Apache Camel Lucene Component.

The camel-lucene producer reads the search phrase from an Exchange header (LuceneConstants.HEADER_QUERY) whose value was the plain string QUERY (and RETURN_LUCENE_DOCS for HEADER_RETURN_LUCENE_DOCS). 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 exposes a Lucene query operation behind an HTTP consumer (for example platform-http), any HTTP client could therefore set the QUERY header and have its value executed against the full-text index, overriding the query the route intended to run. Depending on what is indexed, this allows reading documents the request should not have access to (for example a match-all query returns the entire index, or the route's intended per-user filter can be replaced), and expensive regular-expression queries can consume significant CPU. No credentials are required when the HTTP consumer is unauthenticated.
This issue affects Apache Camel: from 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0.

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 the query via the raw header name must use CamelLuceneQuery (and CamelLuceneReturnLuceneDocs) instead of QUERY / RETURN_LUCENE_DOCS. For deployments that cannot upgrade immediately, strip the attacker-controllable headers before the Lucene producer and set the query from a trusted source (for example removeHeader('QUERY') and removeHeader('RETURN_LUCENE_DOCS'), then setHeader('QUERY', constant(...)) at the start of the route).
Published: 2026-07-06
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Apache Camel Lucene component reads search queries from exchange headers named QUERY and RETURN_LUCENE_DOCS, which do not use the Camel / camel prefix. Because HttpHeaderFilterStrategy only blocks Camel‑prefixed headers on the HTTP boundary, these legacy names bypass the filter and reach the Lucene producer intact. An attacker can therefore inject arbitrary Lucene search phrases through an HTTP request header, causing the producer to execute the query against the indexed data set. The vulnerability allows an attacker to retrieve documents that should not be visible, such as performing a match‑all query to dump the entire index, or to replace a per‑user filter with a query that returns data outside the intended scope. Additionally, complex regular‑expression queries can consume significant CPU resources, potentially leading to service degradation. No credentials are required when the HTTP consumer is unauthenticated, which means a public endpoint can be abused to silently read sensitive data or exhaust system resources. This vulnerability exemplifies CWE‑20 (Improper Input Validation) and CWE‑639 (Authorization Bypass).

Affected Systems

This flaw affects the Apache Camel Lucene component distributed by the Apache Software Foundation. All releases from 4.0.0 up to (but not including) 4.14.8, from 4.15.0 up to (but not including) 4.18.3, and from 4.19.0 up to (but not including) 4.21.0 are impacted. The issue is fixed in 4.14.8 for the 4.14.x LTS stream, 4.18.3 for the 4.18.x stream, and 4.21.0 for newer streams.

Risk and Exploitability

The CVSS score of 7.5 reflects high severity, while an EPSS score of less than 1 % indicates a low likelihood of exploitation at present. The vulnerability is not listed in CISA’s KEV catalog. Exploitation is feasible via a simple HTTP request that sets the QUERY or RETURN_LUCENE_DOCS headers; the request can be sent from any network to an unauthenticated HTTP consumer, enabling data extraction or service disruption without requiring authentication.

Generated by OpenCVE AI on July 26, 2026 at 20:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to 4.21.0 for newer releases, or upgrade to 4.18.3 for the 4.18.x stream, or upgrade to 4.14.8 for the 4.14.x LTS stream.
  • After upgrading, replace legacy QUERY and RETURN_LUCENE_DOCS header usage in routes with Camel‑prefixed headers CamelLuceneQuery and CamelLuceneReturnLuceneDocs.
  • If an upgrade is not immediately possible, strip the attacker‑controllable headers before the Lucene producer by removing Header('QUERY') and Header('RETURN_LUCENE_DOCS'), then set the query from a trusted source within the route, for example setHeader('QUERY', constant(...)).

Generated by OpenCVE AI on July 26, 2026 at 20:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 06 Jul 2026 23:15:00 +0000

Type Values Removed Values Added
First Time appeared Apache
Apache camel Lucene
Vendors & Products Apache
Apache camel Lucene

Mon, 06 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 06 Jul 2026 09:00:00 +0000

Type Values Removed Values Added
Description Improper Input Validation, Authorization Bypass Through User-Controlled Key vulnerability in Apache Camel Lucene Component. The camel-lucene producer reads the search phrase from an Exchange header (LuceneConstants.HEADER_QUERY) whose value was the plain string QUERY (and RETURN_LUCENE_DOCS for HEADER_RETURN_LUCENE_DOCS). 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 exposes a Lucene query operation behind an HTTP consumer (for example platform-http), any HTTP client could therefore set the QUERY header and have its value executed against the full-text index, overriding the query the route intended to run. Depending on what is indexed, this allows reading documents the request should not have access to (for example a match-all query returns the entire index, or the route's intended per-user filter can be replaced), and expensive regular-expression queries can consume significant CPU. No credentials are required when the HTTP consumer is unauthenticated. This issue affects Apache Camel: from 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0. 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 the query via the raw header name must use CamelLuceneQuery (and CamelLuceneReturnLuceneDocs) instead of QUERY / RETURN_LUCENE_DOCS. For deployments that cannot upgrade immediately, strip the attacker-controllable headers before the Lucene producer and set the query from a trusted source (for example removeHeader('QUERY') and removeHeader('RETURN_LUCENE_DOCS'), then setHeader('QUERY', constant(...)) at the start of the route).
Title Apache Camel Lucene: The query control headers used non-Camel-prefixed names (QUERY, RETURN_LUCENE_DOCS) that bypass the HTTP header filter, allowing an HTTP client to inject the full-text search query
Weaknesses CWE-20
CWE-639
References

Subscriptions

Apache Camel Lucene
cve-icon MITRE

Status: PUBLISHED

Assigner: apache

Published:

Updated: 2026-07-06T19:24:45.975Z

Reserved: 2026-05-15T07:54:48.302Z

Link: CVE-2026-46585

cve-icon Vulnrichment

Updated: 2026-07-06T09:25:20.474Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T21:00:04Z

Weaknesses
  • CWE-20

    Improper Input Validation

  • CWE-639

    Authorization Bypass Through User-Controlled Key