CVE-2026-48204 Google Chronicle · YARA-L

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

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).

MITRE ATT&CK

Tactic
Initial Access Defense Evasion Impact

YARA-L Detection Query

Google Chronicle (YARA-L)
yaral
rule camel_mongodb_gridfs_header_injection {
  meta:
    author = "df00tech"
    description = "Detects gridfs.* header injection / NoSQL operator abuse against camel-mongodb-gridfs (CVE-2026-48204)"
    severity = "CRITICAL"
  events:
    $http.metadata.event_type = "NETWORK_HTTP"
    $http.network.http.method != ""
    (
      re.regex($http.target.url, `(?i)gridfs`) or
      re.regex($http.network.http.request_headers, `(?i)gridfs\.[a-zA-Z\$]+`)
    )
    re.regex($http.network.http.request_headers, `(?i)\$where|\$ne|\$gt|\$regex`)
  condition:
    $http
}
critical severity medium confidence

Chronicle YARA-L rule matching HTTP requests to GridFS-related endpoints where request headers contain gridfs.* keys alongside MongoDB NoSQL query operators, indicative of CVE-2026-48204 exploitation.

Data Sources

HTTP Network MetadataProxy Logs

Required Tables

NETWORK_HTTP

False Positives & Tuning

  • Internal test harnesses that legitimately set gridfs.operation headers
  • CI/CD pipelines exercising GridFS integration tests
  • Authorized security assessment traffic

Other platforms for CVE-2026-48204


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

Related Techniques

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