Skip to main content

Apache Camel EUVDEUVD-2026-109668

| CVE-2026-95664 MEDIUM
Improper Neutralization of Special Elements used in an Expression Language Statement (CWE-917)
5.4
CVSS 3.1 · Vendor
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain S3 write access to a consumed bucket
  2. Delivery
    Upload object whose key contains ${ or $simple{
  3. Exploit
    aws2-s3 consumer sets CamelAwsS3Key header to that name
  4. Execution
    aws2-s3 producer evaluates header as Simple expression
  5. Impact
    Disclose properties/credentials or invoke bean methods

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Expression language sanitization
Exploitation Conditions

Requires a deployment on an affected version (4.8.0-4.18.4 or 4.19.0-4.22.1) running a route that consumes from an aws2-s3 endpoint and produces to an aws2-s3 producer while letting the CamelAwsS3Key header pass through to the producer (or copying untrusted content into that header); in such a route the consumed object's name reaches determineKey() and any name containing the markers ${ or $simple{ is evaluated as a Simple expression. The attacker must be able to choose the name of an object in a consumed bucket - typically a principal permitted to upload to that bucket. Limiting factors: configuring keyName on the producer does NOT prevent it because the header takes precedence; reading an evaluated value back additionally requires the ability to see object names in the destination bucket, whereas a bean-method invocation takes effect without that visibility only where camel-bean is on the classpath; the bucket-name header path is not reachable this way because the consumer only places its own configured bucket there; and releases before 4.8.0 are not affected.

Impact

The input CVSS 3.1 score is 5.4 (medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N. The AV:N reflects that the malicious input (an S3 object key) arrives over the network, but PR:L is the decisive signal: exploitation requires the attacker to be a principal allowed to write/name an object in a bucket that a vulnerable Camel route consumes - so this is authenticated against the storage layer, not anonymous internet exploitation. Scope is Unchanged and impact is partial (C:L/I:L, A:N), consistent with reading JVM system properties, environment variables and configuration properties (which may carry credentials) or invoking bean methods, rather than full compromise. No EPSS score is provided in the input, no CISA KEV listing is present, and no public exploit code is referenced; the vuln.today Decision label is 'awaiting_data', which signals the priority is not yet escalated rather than act_now/emergency. This is therefore a conditional medium-risk issue, not a high-CVSS-but-low-real-risk mislabel and not a drop-everything emergency: its real-world priority depends almost entirely on whether a deployment actually runs the specific route pattern (an aws2-s3 consumer feeding an aws2-s3 producer with the CamelAwsS3Key header passed through) on an affected version. Where that pattern is absent, practical risk is low; where it is present and untrusted principals can upload to the consumed bucket, it is a genuine code/credential-exposure concern.

Exploit ScenarioDerived

An attacker who holds write/upload permission to an S3 bucket that a vulnerable Camel route consumes uploads an object whose key contains a Simple-language marker, e.g. ${sys.some.property} or a $simple{...} bean call. When the route consumes that object and produces it to another aws2-s3 endpoint, AWS2S3Utils.determineKey() evaluates the attacker-chosen key as a Simple expression in the Camel process, disclosing system properties/environment/config values (potentially credentials) or, where camel-bean is on the classpath, invoking bean methods. No public exploit code is referenced in the input; the linked JIRA (CAMEL-20971) is the feature request that introduced dynamic key evaluation in 4.8.0, not a proof of concept.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

Expression language injection in the Apache Camel camel-aws2-s3 producer allows a user who can choose object names in a bucket that a Camel route consumes to have Simple expressions of their choosing evaluated inside the Camel process, because the object name arriving in the CamelAwsS3Key message header is passed to the Simple language whenever it contains ${ or $simple{. Deployments on 4.8.0 through 4.18.4 and 4.19.0 through 4.22.1 are affected only where a route passes exchanges from an aws2-s3 consumer to an aws2-s3 producer with that header intact; the attacker must already hold write access to the consumed bucket (authenticated, PR:L), and reading an evaluated value back additionally requires visibility of object names in the destination bucket, which is why the assessed severity is medium (CVSS 5.4). No public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

Upgrade to 4.23.0, or to 4.22.2 if staying on the 4.22.x stream, or to 4.18.5 if staying on the 4.18.x stream; the 4.8.x-4.17.x and 4.19.x-4.21.x lines will not be fixed, so deployments on them must move to a supported release. After upgrading, determineKey() and determineBucketName() evaluate Simple only for the keyName and bucketName options written by the route author, and header-supplied keys and CamelAwsS3OverrideBucketName values are used literally - routes that relied on placing an unevaluated Simple expression in those headers must now evaluate it in the route itself (for example setHeader with simple()) or move it into the endpoint's keyName/bucketName option. If upgrading is not immediately possible, in routes that pass exchanges from an aws2-s3 consumer to an aws2-s3 producer either strip the header with removeHeader("CamelAwsS3Key") so the endpoint's keyName is used (side effect: every message in that route then targets one fixed key unless the route computes one), or reject exchanges whose CamelAwsS3Key header contains ${ or $simple{ (side effect: any legitimate dynamic-key route using those markers breaks). Configuring keyName alone is explicitly not a workaround because the header takes precedence. As defense in depth, restrict write access on consumed buckets to trusted principals, which shrinks the set of potential attackers but does not remove the flaw.

Affected VersionsENISA

Apache Camel 4.19.0 <4.22.2
Apache Camel 4.8.0 <4.18.5

Affected Packages

euvd apache_camel fix: 4.18.5, 4.22.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Apache Camel routes messages between endpoints and carries per-message metadata in headers; camel-aws2-s3 implements S3 object operations. Since 4.8.0 - the release that resolved the CAMEL-20971 feature request for a dynamic key name on the S3 consumer - AWS2S3Utils.determineKey() took the key from the CamelAwsS3Key header (falling back to the endpoint's keyName option only when the header was absent) and, if the value contained the markers ${ or $simple{, evaluated it through Camel's Simple expression language. This is CWE-917, Expression Language Injection: route configuration and message data were conflated, so a value the route author never intended as an expression was compiled and evaluated. The aws2-s3 consumer itself populates CamelAwsS3Key with the name of the object it read, so a plain consumer-to-producer route forwarded remote-controlled object names straight into the evaluator; setting keyName on the producer did not help because the header takes precedence. Simple can resolve JVM system properties, environment variables and configuration properties (common carriers of credentials) and, where camel-bean is on the classpath, invoke registry bean methods. determineBucketName() shares the same evaluation logic, but the consumer only ever places its own configured bucket in the bucket header, so that path is not reachable from remote object data. Releases before 4.8.0 used the header value literally and are unaffected.

Know when Camel gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CNA) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Attacker needs write/upload rights to a consumed bucket (PR:L) with the key delivered over the network (AV:N); partial confidentiality via property/credential disclosure and partial integrity via bean-method invocation, no availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (CNA).

CVSS VectorVendor

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Oct 26, 2026 - 10:16 EUVD
CVSS changed
Oct 26, 2026 - 09:22 NVD
5.4 (MEDIUM)

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
Apache Camel AWS2-S3 integration component; common in Java integration stacks, not ubiquitous
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

More in Camel

View all
CVE-2025-27636 MEDIUM POC
5.6 Mar 09

Bypass/Injection vulnerability in Apache Camel components under particular conditions.10.0 through <= 4.10.1, from 4.8.0

CVE-2014-0002 HIGH POC
7.5 Mar 21

The XSLT component in Apache Camel before 2.11.4 and 2.12.x before 2.12.3 allows remote attackers to read arbitrary file

CVE-2016-8749 CRITICAL POC
9.8 Mar 28

Apache Camel's Jackson and JacksonXML unmarshalling operation are vulnerable to Remote Code Execution attacks. Rated cri

CVE-2014-0003 HIGH POC
7.5 Mar 21

The XSLT component in Apache Camel 2.11.x before 2.11.4, 2.12.x before 2.12.3, and possibly earlier versions allows remo

CVE-2026-23552 CRITICAL POC
9.1 Feb 23

Cross-realm token acceptance bypass in Apache Camel Keycloak security policy. The KeycloakSecurityPolicy fails to proper

CVE-2026-25747 HIGH POC
8.8 Feb 23

Deserialization of Untrusted Data vulnerability in Apache Camel LevelDB component. The Camel-LevelDB DefaultLevelDBSeria

CVE-2026-40473 HIGH POC
8.8 Apr 27

Unsafe Java deserialization in the Apache Camel camel-mina component (versions 3.0.0 through 4.14.5, 4.15.0 through 4.18

CVE-2019-0194 HIGH POC
7.5 Apr 30

Apache Camel's File is vulnerable to directory traversal. Rated high severity (CVSS 7.5), this vulnerability is remotely

CVE-2017-12634 CRITICAL
9.8 Nov 15

The camel-castor component in Apache Camel 2.x before 2.19.4 and 2.20.x before 2.20.1 is vulnerable to Java object de-se

CVE-2015-5344 CRITICAL
9.8 Feb 03

The camel-xstream component in Apache Camel before 2.15.5 and 2.16.x before 2.16.1 allow remote attackers to execute arb

CVE-2017-12633 CRITICAL
9.8 Nov 15

The camel-hessian component in Apache Camel 2.x before 2.19.4 and 2.20.x before 2.20.1 is vulnerable to Java object de-s

CVE-2013-4330 MEDIUM
6.8 Oct 04

Apache Camel before 2.9.7, 2.10.0 before 2.10.7, 2.11.0 before 2.11.2, and 2.12.0 allows remote attackers to execute arb

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy