CVE-2026-95664 — Apache Camel: Camel-AWS2-S3 Producer Evaluates Untrusted S3 Object Keys From the CamelAwsS3Key Header as Simple Expressions
Improper Neutralization of Special Elements used in an Expression Language Statement ('Expression Language Injection') vulnerability in Apache Camel AWS2-s3 component. This issue affects Apache Camel: from 4.8.0 before 4.18.5, from 4.19.0 before 4.22.2. For the object it uploads, reads or deletes, the camel-aws2-s3 producer takes the key from the CamelAwsS3Key message header and falls back to the keyName option configured on the endpoint only when that header is absent. Since 4.8.0, AWS2S3Utils.determineKey() also passed the resulting value to the Simple language whenever it contained ${ or $simple{, so that a route could use a dynamic key, and the evaluation applied to a value taken from the header as well as to the configured option. The header is not route configuration, however: the aws2-s3 consumer sets CamelAwsS3Key on the exchanges it creates to the key of the object it read, that is, the name of the object in the bucket. In a route that does nothing more than consume from one aws2-s3 endpoint and produce to another, the name of each consumed object therefore reached the producer, and a name containing either marker was evaluated as an expression, although the route author never asked for any evaluation, and configuring keyName on the producer did not prevent it, because the header took precedence. A key that a route copied into the header from other message content was evaluated in the same way. Anyone able to choose the name of an object in a bucket that such a route consumes, typically a principal allowed to upload to that bucket, could therefore have Simple expressions of their choosing evaluated in the Camel process. The Simple language can read JVM system properties, environment variables and configuration properties, which commonly carry credentials, and, where camel-bean is on the classpath, invoke methods on beans in the registry. The evaluated result became the key the producer used, so reading a value back additionally required the ability to see object names in the destination bucket, while a method invocation took effect without it; together with the need to name an object in a consumed bucket, this is why the severity is assessed medium. The bucket name went through the same evaluation, but the consumer only ever places the bucket configured on its own endpoint in a bucket header, never a value derived from a remote object, so the bucket name was not reachable in this way. Releases before 4.8.0 used the key from the header as given and are not affected. Users are recommended to upgrade to version 4.23.0, which fixes the issue. If users are on the 4.22.x releases stream, then they are suggested to upgrade to 4.22.2. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.5. The 4.8.x to 4.17.x and 4.19.x to 4.21.x release lines reached end of life before this issue was resolved and will not receive a fix, so deployments on them must move to a supported release. After upgrading, a key or bucket name supplied through a message header is used literally, so a route that put an unevaluated Simple expression in the CamelAwsS3Key or CamelAwsS3OverrideBucketName header must evaluate it in the route instead, for example with setHeader and simple(), or configure it as the keyName or bucketName option of the endpoint. For deployments that cannot upgrade immediately, do not let a key derived from an object name or from other untrusted message content reach an aws2-s3 producer unchecked: in routes that pass exchanges from an aws2-s3 consumer to an aws2-s3 producer, either remove the CamelAwsS3Key header before the producer with removeHeader(“CamelAwsS3Key”), so that the keyName configured on the endpoint is used, or reject exchanges whose CamelAwsS3Key header contains ${ or $simple{. Configuring keyName alone is not a workaround, because the header takes precedence over it. As defence in depth, allow only trusted principals to write to buckets that Camel routes consume.
Who exploits it and how urgent it is
A 0–100 score combining confirmed exploitation, ransomware and APT use, public exploits, EPSS and severity.
How the score was calculated
- EPSS 0.3% (30-day exploitation probability)+3
- Technical severity (medium)+3
The score orders the patch queue; it does not replace your asset context (internet exposure, criticality, compensating controls).
Triage
Is it exploited, how likely is exploitation, what does it touch, and how severe do the sources call it.
Remediation
Fixes and mitigations documented by the sources — linked to the original advisory.
- Documented patch — github.com (NIST National Vulnerability Database)
- Documented patch — github.com (NIST National Vulnerability Database)
- Documented patch — github.com (NIST National Vulnerability Database)
- Documented patch — github.com (NIST National Vulnerability Database)
- Documented patch — github.com (NIST National Vulnerability Database)
First 24 hours
Ordered from the record’s own fields — exposure first, because you cannot patch what you have not found. A rule-generated starting point.
- Identify exposed assets running the affected vendor/product/version combinations (Apache Software Foundation Camel).
- Apply the fixed version or the patch documented under Remediation.
- Search available logs for exploit probes matching the vulnerability class (injection), errors and authentication anomalies.
Affected scope
Vendor, product and versions as the sources word them.
| Vendor | Product | Versions | Status | Source |
|---|---|---|---|---|
| Apache Software Foundation | Camel | ≥ 4.8.0 and < 4.18.5≥ 4.19.0 and < 4.22.2 | Vulnerable | CVE Program (cve.org) e CISA ADP |
| Apache Software Foundation | Camel | ≥ 4.8.0 and < 4.18.5≥ 4.19.0 and < 4.22.2 | Vulnerable | NIST National Vulnerability Database |
Attack characteristics
The CVSS vector, decoded. It describes the attack, not your exposure to it.
Every base score collected
Sources score independently and may disagree; each row says who scored it and under which version.
| Score | Version | Severity | Expl. | Impact | Scored by |
|---|---|---|---|---|---|
| 5.4 | CVSS 3.1 | Medium | 2.8 | 2.5 | security@apache.org via NIST National Vulnerability Database |
| 5.4 | CVSS 3.1 | Medium | — | — | GitHub, Inc. via GitHub Security Advisories |
| 5.4 | CVSS 3.1 | Medium | — | — | apache via CVE Program (cve.org) e CISA ADP |
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N (score shown at the top: security@apache.org) Weakness MITRE
Weakness class according to MITRE’s CWE catalog.
EPSS over time FIRST
Oct 26, 2026 → Oct 28, 2026 · 3 reading(s) · max 0.30%
Detection
Read off the CVSS vector and the weakness class. Starting points, not tested rules.
- Prioritize edge telemetry for the network-reachable component (proxy, WAF, IDS/IPS).
- Look for parameters with command/query metacharacters and unexpected child processes of the service.
Timeline
What happened to this CVE, newest first.
- 2026
- Fix documented
- Affected products added · apache/camel
- Source status changed · Undergoing Analysis → Analyzed
- Source status changed · Awaiting Analysis → Undergoing Analysis
- Source status changed · Received → Awaiting Analysis
- Source status changed · Published → Received
- Record published
- CVSS changed · 5.4
- Source status changed · → Published
- Record created in this database
- CVE published
Source activity
Repeated readings are counted rather than listed.
- 1× References added · Oct 28, 2026 – Oct 28, 2026
- 1× Official description updated · Oct 26, 2026 – Oct 26, 2026
References
13 on the record
- camel.apache.org/security/CVE-2026-95664.html
- github.com/apache/camel/pull/26842
- github.com/apache/camel/pull/26889
- github.com/apache/camel/pull/26841
- github.com/apache/camel/pull/26746
- github.com/apache/camel/pull/26840
- camel.apache.org/security/CVE-2026-83531.html
- nvd.nist.gov/vuln/detail/CVE-2026-95664
- issues.apache.org/jira/browse/CAMEL-20971
- github.com/advisories/GHSA-2p39-5856-3v5v
- issues.apache.org/jira/browse/CAMEL-24901
- camel.apache.org/security/CVE-2025-27636.html
- camel.apache.org/security/CVE-2026-78164.html
Elsewhere on this site
Related CVEs (same products)
- Medium CVE-2026-94386 Apache Camel: Camel-OAuth Cross-Scope Token Reuse via an Under-Keyed JVM-Global Client Credentials Token Cache 2d
- High CVE-2026-90885 Apache Camel: Camel-Saxon XML External Entity Processing - XQueryBuilder Parsed a Message Body That Was Already a javax.xml.transform.Source With Saxon's Default Parser Settings, so an External Entity Declared in That Body Was Resolved 2d
- Medium CVE-2026-95663 Apache Camel: Camel-Keycloak Security Policy Accepts Expired Access Tokens Because Cached Token Introspection Results Are Not Bounded by the Token Expiry 2d
- Medium CVE-2026-95628 Apache Camel: Camel-Docling Custom CLI Argument Path Validation Does Not Reject Absolute Paths (Incomplete Fix of CVE-2026-40047) 2d
- Medium CVE-2026-95629 Apache Camel: Camel-Docling Unvalidated Output Path Header Enables Writing Conversion Output to an Arbitrary Directory 2d
- Medium CVE-2026-101259 Apache Camel: Camel-CoAP Information Disclosure via Unmuted Consumer Exceptions 2d
Not in any source we poll
Listed rather than left blank: an empty field and an unmeasured one look identical on screen, and only one is a reason to look elsewhere.
- No CISA SSVC assessment.
- No confirmed IOCs, IP addresses, domains, file hashes, or malware artifacts supplied.
- No organization-specific asset inventory, compensating-control status, or patch deployment evidence supplied.
- No exploit packet captures, log samples, or incident case IDs supplied.
Answered from this record
Text assembled only from the fields above — no additional claims.
What should defenders know first?
CVE-2026-95664 is "Apache Camel: Camel-AWS2-S3 Producer Evaluates Untrusted S3 Object Keys From the CamelAwsS3Key Header as Simple Expressions", rated Medium. It affects Camel (Apache Software Foundation); versions are in the scope table. It is not in CISA KEV, which does not rule out exploitation. CVSS 5.4 describes technical severity. EPSS 0.30% estimates the probability of exploitation in 30 days; neither replaces your asset context. First verify whether exposed or business-critical assets run the affected versions, apply vendor fixes or mitigations, and preserve logs for review.
Comments
Moderated technical discussion. Read the community guidelines.
No comments yet.
Sign in or create an account to comment and suggest corrections.