Apache Camel camel-coap Header Injection to Remote Code Execution (CVE-2026-33453)
by dinosn · 2026-07-05
- 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
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-04 |
| Author / Researcher | dinosn |
| CVE / Advisory | CVE-2026-33453 |
| Category | web |
| Severity | Critical |
| CVSS Score | 10.0 (per source assessment) |
| Status | Weaponized |
| Tags | apache-camel, coap, header-injection, rce, cwe-915, camel-exec, unauthenticated, udp |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Apache Camel — camel-coap component (CamelCoapResource), routes forwarding to camel-exec |
| Versions Affected | 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 |
| Language / Platform | Java (Apache Camel route), exploit written in Python 3.8+ sending raw CoAP/UDP requests |
| Authentication Required | No |
| Network Access Required | Yes |
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
- Identify a Camel route exposing a
camel-coapendpoint (UDP, default port 5683) that forwards its exchange to acamel-execendpoint. - Craft a CoAP request whose URI query string includes
CamelExecCommandExecutable=<attacker command>(and optionallyCamelExecCommandArgs=...). - Send the single UDP CoAP packet to the target;
CamelCoapResourcecopies the query parameters into Exchange headers unfiltered. - The
camel-execcomponent reads the injectedCamelExecCommandExecutable/CamelExecCommandArgsheaders instead of its statically configured command and executes the attacker’s command. - The command’s output is returned in the CoAP response body (
2.05content 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), andpoc/docker-compose.ymlin this folder. A PoC result screenshot is included atpoc/screenshots/cve-2026-33453-coap-rce.png. Note: the upstreamdocker-compose.ymlalso 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.
| |
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/CamelExecCommandArgsin the request query string camel-execprocess 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
| Action | Detail |
|---|---|
| Primary fix | Upgrade Apache Camel to 4.18.1 / 4.14.6 or later, where CoAPEndpoint extends DefaultHeaderFilterStrategyEndpoint and CoAPComponent implements HeaderFilterStrategyComponent to filter Camel* headers |
| Interim mitigation | Avoid 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.