PoC Archive PoC Archive
Critical CVE-2026-33453 patched

Apache Camel camel-coap Header Injection to Remote Code Execution (CVE-2026-33453)

by dinosn · 2026-07-05

CVSS 10.0/10
Severity
Critical
CVE
CVE-2026-33453
Category
web
Affected product
Apache Camel — camel-coap component (CamelCoapResource), routes forwarding to camel-exec
Affected versions
Apache Camel 4.18.0 (and other versions sharing the same CamelCoapResource code path prior to the fix); fixed in 4.18.1 / 4.14.6
Disclosed
2026-07-05
Patch status
patched

Metadata

FieldValue
Date Added2026-07-05
Last Updated2026-04
Author / Researcherdinosn
CVE / AdvisoryCVE-2026-33453
Categoryweb
SeverityCritical
CVSS Score10.0 (per source assessment)
StatusWeaponized
Tagsapache-camel, coap, header-injection, rce, cwe-915, camel-exec, unauthenticated, udp
RelatedN/A

Affected Target

FieldValue
Software / SystemApache Camel — camel-coap component (CamelCoapResource), routes forwarding to camel-exec
Versions AffectedApache Camel 4.18.0 (and other versions sharing the same CamelCoapResource code path prior to the fix); fixed in 4.18.1 / 4.14.6
Language / PlatformJava (Apache Camel route), exploit written in Python 3.8+ sending raw CoAP/UDP requests
Authentication RequiredNo
Network Access RequiredYes

Summary

Apache Camel’s camel-coap component maps CoAP URI query parameters directly into Camel Exchange headers via setHeader() inside CamelCoapResource.handleRequest(), without applying any HeaderFilterStrategy. Because CoAPEndpoint extends DefaultEndpoint rather than DefaultHeaderFilterStrategyEndpoint, internal Camel*-prefixed headers — which are normally reserved for framework-internal use — can be injected by any unauthenticated CoAP client simply by adding query parameters to the request. When a Camel route forwards the exchange to a camel-exec endpoint, an attacker-controlled CamelExecCommandExecutable header (and optionally CamelExecCommandArgs) overrides the route’s configured command, letting a single crafted UDP packet execute an arbitrary command on the host. The bundled PoC exploits this against a Dockerized vulnerable Camel CoAP+exec route and returns command output directly in the CoAP response.


Vulnerability Details

Root Cause

CamelCoapResource.handleRequest() (CamelCoapResource.java:103-109) parses each CoAP URI query parameter and sets it as a Camel Exchange header with no header-name filtering, because CoAPEndpoint/CoAPComponent do not implement HeaderFilterStrategyComponent/extend DefaultHeaderFilterStrategyEndpoint — allowing reserved Camel* internal headers to be set from untrusted CoAP query input.

Attack Vector

  1. Identify a Camel route exposing a camel-coap endpoint (UDP, default port 5683) that forwards its exchange to a camel-exec endpoint.
  2. Craft a CoAP request whose URI query string includes CamelExecCommandExecutable=<attacker command> (and optionally CamelExecCommandArgs=...).
  3. Send the single UDP CoAP packet to the target; CamelCoapResource copies the query parameters into Exchange headers unfiltered.
  4. The camel-exec component reads the injected CamelExecCommandExecutable/CamelExecCommandArgs headers instead of its statically configured command and executes the attacker’s command.
  5. The command’s output is returned in the CoAP response body (2.05 content response in the PoC).

Impact

Pre-authenticated remote code execution via a single UDP packet against any Camel route combining camel-coap with camel-exec.


Environment / Lab Setup

Target:   Apache Camel 4.18.0 camel-coap + camel-exec route (Docker container, UDP port 5683)
Attacker: Docker/Docker Compose, Python 3.8+

Proof of Concept

PoC Script

See poc/exploits/exploit_cve_2026_33453_coap.py, poc/cve-2026-33453-coap/ (vulnerable Camel app source, pom.xml, Dockerfile), and poc/docker-compose.yml in this folder. A PoC result screenshot is included at poc/screenshots/cve-2026-33453-coap-rce.png. Note: the upstream docker-compose.yml also defines lab services for two related CVEs (CVE-2026-40473 camel-mina, CVE-2026-40858 camel-infinispan) documented in the same source assessment; only the CoAP-specific component (vuln-camel-coap) is relevant to this entry.

1
2
3
4
cd poc
docker compose up -d --build vuln-camel-coap
python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'id'
python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'cat /etc/hostname'

The exploit script sends a single crafted CoAP UDP request with the injected CamelExecCommandExecutable/CamelExecCommandArgs query parameters to the vulnerable route and prints the command output extracted from the CoAP 2.05 response.


Detection & Indicators of Compromise

Signs of compromise:

  • CoAP (UDP/5683) traffic containing CamelExecCommandExecutable/CamelExecCommandArgs in the request query string
  • camel-exec process executions with commands/arguments inconsistent with the route’s configured command
  • Unexpected child processes spawned by the Camel/JVM process following inbound CoAP requests

Remediation

ActionDetail
Primary fixUpgrade Apache Camel to 4.18.1 / 4.14.6 or later, where CoAPEndpoint extends DefaultHeaderFilterStrategyEndpoint and CoAPComponent implements HeaderFilterStrategyComponent to filter Camel* headers
Interim mitigationAvoid combining camel-coap with camel-exec (or other sensitive downstream components) until patched; restrict/firewall CoAP UDP endpoints from untrusted networks

References


Notes

Mirrored from https://github.com/dinosn/apache-camel (renamed upstream to https://github.com/dinosn/CVE-2026-33453) on 2026-07-05. The source repository covers three related CVEs (CVE-2026-33453, CVE-2026-40473, CVE-2026-40858) found during the same Apache Camel 4.18.0 assessment; this entry mirrors only the CoAP header-injection component and files specific to CVE-2026-33453.