CVE-2026-48204

Apache Camel camel-mongodb-gridfs Header Injection / GridFS Operation Override (CVE-2026-48204)

Detects exploitation attempts against CVE-2026-48204, a critical (CVSS 9.8) input validation flaw (CWE-20) in the Apache Camel camel-mongodb-gridfs component. Affected versions (>=4.0.0 <4.14.8, >=4.15.0 <4.18.3, >=4.19.0 <4.21.0) fail to filter caller-supplied gridfs.* HTTP/Camel exchange headers before applying them to GridFS producer operations, allowing an attacker to override the intended GridFS operation (e.g. force a delete/listAll/findOne instead of the intended write) and inject NoSQL query operators into MongoDB GridFS filter queries. This can lead to unauthorized data disclosure, deletion of stored files, or NoSQL injection against the backing MongoDB metadata collection. A public PoC/advisory exists (GHSA-f7g3-2cg6-f5hj).

Vulnerability Intelligence

Public PoC

CVSS

9.8
Critical (9.0–10)
CVSS vector not yet published
Read the write-up →

What is CVE-2026-48204 Apache Camel camel-mongodb-gridfs Header Injection / GridFS Operation Override (CVE-2026-48204)?

Apache Camel camel-mongodb-gridfs Header Injection / GridFS Operation Override (CVE-2026-48204) (CVE-2026-48204) maps to the Initial Access and Defense Evasion and Impact tactics — the adversary is trying to get into your network in MITRE ATT&CK.

This page provides production-ready detection logic for Apache Camel camel-mongodb-gridfs Header Injection / GridFS Operation Override (CVE-2026-48204), covering the data sources and telemetry it touches: Azure App Service HTTP Logs, Web Application Firewall Logs, Reverse Proxy Logs. The queries below are rated critical severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Initial Access Defense Evasion Impact
Microsoft Sentinel / Defender
kusto
let SuspiciousHeaders = dynamic(["gridfs.operation", "gridfs.query", "gridfs.filter", "gridfs.$where", "gridfs.delete", "gridfs.remove"]);
AppServiceHTTPLogs
| where TimeGenerated > ago(24h)
| where CsHost has "camel" or CsUriStem has "gridfs" or CsUriStem has "camel"
| extend HeaderMatches = extract_all(@"(?i)(gridfs\.[a-zA-Z\$]+)\s*[:=]", RequestHeaders)
| where array_length(HeaderMatches) > 0 or RequestHeaders has "$where" or RequestHeaders has "$ne" or RequestHeaders has "$gt" or RequestHeaders has "$regex"
| project TimeGenerated, CIp, CsHost, CsUriStem, RequestHeaders, HeaderMatches, ScStatus
| order by TimeGenerated desc

Flags inbound HTTP requests to Camel-fronted endpoints that carry gridfs.* headers or MongoDB NoSQL operators ($where, $ne, $gt, $regex) which could override GridFS producer operations or inject query operators against camel-mongodb-gridfs.

critical severity medium confidence

Data Sources

Azure App Service HTTP Logs Web Application Firewall Logs Reverse Proxy Logs

Required Tables

AppServiceHTTPLogs AzureDiagnostics

False Positives

  • Internal automated test suites sending crafted gridfs.* headers during CI integration tests
  • Legitimate GridFS management tooling that intentionally sets gridfs.operation headers
  • Security scanners/pentest tooling probing the same headers as part of authorized assessments

Sigma rule & cross-platform mapping

The detection logic for Apache Camel camel-mongodb-gridfs Header Injection / GridFS Operation Override (CVE-2026-48204) (CVE-2026-48204) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  category: network_connection
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1GridFS Operation Override via Header Injection

    Expected signal: HTTP access log entry showing the gridfs.operation header; MongoDB profiler entry for a delete operation against fs.files/fs.chunks that was not expected for an upload request.

  2. Test 2NoSQL Operator Injection via gridfs.query Header

    Expected signal: HTTP request log with gridfs.query header containing $where; MongoDB profiler log showing a find operation using an unexpected $where clause.

  3. Test 3Bulk GridFS Listing via listAll Override

    Expected signal: HTTP access log entry showing gridfs.operation=listAll on an endpoint intended for scoped reads; MongoDB profiler entry showing a broad find/list query against fs.files.


Response Playbook

Triage

  1. Identify the source IP, authenticated identity (if any), and target Camel route/endpoint that received the suspicious gridfs.* headers or embedded NoSQL operators.
  2. Confirm the affected camel-mongodb-gridfs artifact version in the deployed application (check pom.xml/dependency manifest or runtime JAR) against the vulnerable ranges: >=4.0.0 <4.14.8, >=4.15.0 <4.18.3, >=4.19.0 <4.21.0.
  3. Review the raw HTTP request/exchange headers to determine which GridFS operation was overridden (e.g. delete/listAll instead of the intended store/write) and whether NoSQL operators ($where, $ne, $regex, $gt) were injected into the filter.
  4. Correlate against MongoDB audit/profiler logs for the corresponding GridFS bucket (fs.files/fs.chunks) to confirm whether unauthorized reads, deletes, or metadata queries actually executed.
  5. Check application logs for anomalous GridFS operation results (unexpected file deletions, bulk listings, or empty/altered downloads) around the same timestamp.

Containment

  1. Upgrade camel-mongodb-gridfs to a patched version (>=4.14.8, >=4.18.3, or >=4.21.0 depending on branch) as soon as possible; if immediate patching is not feasible, deploy a WAF/reverse-proxy rule to strip or reject inbound gridfs.* HTTP headers before they reach the Camel route.
  2. If active exploitation is confirmed, temporarily disable or isolate the affected Camel route/endpoint and rotate any credentials used by the camel-mongodb-gridfs component to access MongoDB.
  3. Restrict network access to the MongoDB backend to only trusted application hosts while remediation is in progress.

Evidence Collection

  1. Preserve full HTTP request logs (headers and body) for the affected time window from the reverse proxy/WAF and application server.
  2. Export MongoDB profiler/audit logs covering the fs.files and fs.chunks collections for the GridFS bucket in question, including query shapes and operator usage.
  3. Capture the running application's dependency manifest (effective pom.xml or built JAR contents) to document the exact camel-mongodb-gridfs version at time of incident.

Escalation Criteria

  • ! Escalate to incident response if confirmed unauthorized deletion, exfiltration, or modification of files stored in GridFS occurred.
  • ! Escalate if the injected NoSQL operators returned data outside the expected bucket/tenant scope, indicating potential cross-tenant data exposure.
  • ! Escalate if multiple source IPs or automated/scripted patterns are observed probing gridfs.* headers, suggesting mass scanning or an active campaign targeting this CVE.

Investigation Guide

Forensic Artifacts

  • > HTTP access/proxy logs showing gridfs.* header names and values on inbound requests
  • > MongoDB profiler/audit log entries for fs.files/fs.chunks collections with unexpected operators or operations
  • > Application-level Camel route logs showing the resolved GridFS operation vs. the originally intended operation

Tuning Guidance

Baseline which internal services and IP ranges legitimately send gridfs.operation/gridfs.query headers (e.g. internal orchestration tools) and allowlist them to reduce noise. Tighten the rule to alert only when gridfs.* headers co-occur with MongoDB operator syntax ($where, $ne, $gt, $regex) since header presence alone can be benign in intentionally-configurable deployments. After patching, retain the detection at reduced severity to catch stragglers running unpatched versions or attempts against legacy endpoints.


Hunting Queries

Hunts for repeated or bursty use of gridfs.* headers from a single source over a rolling window, which may indicate automated scanning or exploitation attempts rather than a one-off legitimate call.

Hunting — KQL
kql
AppServiceHTTPLogs
| where RequestHeaders has "gridfs."
| summarize count(), make_set(CsUriStem) by CIp, bin(TimeGenerated, 1h)
| where count_ > 5
| order by count_ desc
Hunting — SPL
spl
index=web_proxy sourcetype=camel_http RequestHeaders="*gridfs.*"
| bin _time span=1h
| stats count by src_ip, _time
| where count > 5

Atomic Red Team Tests

Test 1 GridFS Operation Override via Header Injection
linux

Sends a crafted HTTP request with a gridfs.operation header attempting to override the intended GridFS producer operation to 'delete' in a lab Camel route backed by camel-mongodb-gridfs.

Command

bash
curl -s -X POST http://lab-camel-host:8080/gridfs-upload -H 'gridfs.operation: delete' -H 'gridfs.fileName: testfile.txt' --data-binary @/tmp/testfile.txt

Cleanup

bash
Restart the lab Camel route and restore the fs.files/fs.chunks test collection from a pre-test MongoDB snapshot.

Expected Telemetry

HTTP access log entry showing the gridfs.operation header; MongoDB profiler entry for a delete operation against fs.files/fs.chunks that was not expected for an upload request.

Expected Detection

kql/spl rules alert on the presence of the gridfs.operation header on the upload endpoint.

Test 2 NoSQL Operator Injection via gridfs.query Header
linux

Submits a request with a gridfs.query header containing a MongoDB $where/$regex operator to test whether the filter is applied unsanitized to the GridFS metadata query in a lab environment.

Command

bash
curl -s -X GET 'http://lab-camel-host:8080/gridfs-find' -H 'gridfs.query: {"$where": "this.length > 0"}'

Cleanup

bash
No persistent state change expected; verify no unintended documents were returned/logged and clear test logs if generated.

Expected Telemetry

HTTP request log with gridfs.query header containing $where; MongoDB profiler log showing a find operation using an unexpected $where clause.

Expected Detection

elastic_eql/chronicle_yaral rules flag the co-occurrence of gridfs.* header and $where operator in the request.

Test 3 Bulk GridFS Listing via listAll Override
windows

Attempts to override a scoped GridFS read to a listAll operation using the gridfs.operation header, simulating enumeration of all stored files in the bucket.

Command

powershell
Invoke-WebRequest -Uri 'http://lab-camel-host:8080/gridfs-read' -Method GET -Headers @{'gridfs.operation'='listAll'}

Cleanup

powershell
No destructive state change; confirm no additional files were created and clear generated test logs from the lab web server.

Expected Telemetry

HTTP access log entry showing gridfs.operation=listAll on an endpoint intended for scoped reads; MongoDB profiler entry showing a broad find/list query against fs.files.

Expected Detection

spl/qradar_aql rules alert on gridfs.operation header value mismatching the endpoint's expected operation.

Related Detections