Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessControl or MITM the polled SFTP/FTP server
-
DeliveryReturn listing entry with '../' traversal name
-
ExploitCamel concatenates path without containment check
-
ExecutionConsumer retrieves/deletes/renames via endpoint credentials
-
ImpactRead or destroy files outside polling directory
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the file name in the remote server's directory listing not be a single path segment - i.e. the attacker must influence the LIST/SFTP listing output. Concretely this means one of: a malicious, compromised, or multi-tenant remote server; a server backed by a virtual filesystem that can emit traversal names; or an on-path attacker against plaintext FTP, whose control channel has no integrity protection (SFTP's transport integrity narrows this to server-side control). Read/retrieval is reachable in a DEFAULT consumer configuration since consumers download every listed file; delete requires delete=true, and rename-based escape requires move, preMove, moveFailed, or readLock=rename - all common dispositions. Limiting factors: the jailStartingDirectory option is enabled by default but, prior to the fix, did NOT constrain this remote operand (it governed producer writes and local-work-directory downloads only); escape beyond the configured polling directory is unconditional once a traversal name is accepted, whereas escape beyond the server account's own boundary further depends on whether that server confines the account. The deployer polling only a trusted, dedicated SFTP server over an authenticated host key is substantially less exposed. |
| Impact | This is a genuine but conditional-severity path traversal issue (CWE-22) in Apache Camel's remote-file consumers, including the mina-sftp scheme. The vendor CVSS of 7.4 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N) is well-calibrated: network reachable and requiring no attacker credentials (PR:N), but AC:H because successful exploitation depends on the attacker controlling what the remote server reports in a directory listing - either by operating/compromising the SFTP/FTP server, operating in a multi-tenant/virtual-filesystem server, or acting as an on-path attacker who rewrites an unprotected FTP LIST response. There is NO EPSS score, NO CISA KEV listing, and NO public exploit in the provided intelligence, so this is 'no public exploit identified at time of analysis.' That combination - high CVSS driven by C:H/I:H but gated behind a trust-relationship/MITM precondition - means this is a real priority for organizations that poll untrusted, third-party, or multi-tenant remote file servers, but a materially lower practical risk for those polling only trusted, dedicated, integrity-protected (SFTP with a trusted host) endpoints. The absence of KEV/EPSS/POC signals suggests no evidence of active or widespread exploitation yet; prioritize patching where the remote server is outside the deployer's trust boundary. |
| Exploit ScenarioDerived | An organization runs a Camel route whose SFTP/FTP consumer polls a directory on a remote server; an attacker who controls that server (or who is on-path on an unprotected FTP control channel) returns a directory-listing entry such as '../../etc/passwd' instead of a plain filename. Camel concatenates this into the remote path without normalization or containment checks and then retrieves the file (default behavior), or deletes/renames it if delete=true or a move/preMove/moveFailed/readLock=rename disposition is configured, operating outside the polled directory with the endpoint's own credentials. No public exploit code is identified, and successful escape of the server's account boundary additionally depends on whether that server jails the account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Path traversal in Apache Camel's remote-file consumers (the FTP, SFTP and mina-sftp schemes) lets a name reported in a remote server's directory listing resolve outside the directory Camel was configured to poll, so Camel will read, delete or rename files elsewhere using that endpoint's own credentials. Affected are Camel 4.18.0 through 4.18.4 and 4.19.0 through 4.22.0, with retrieval reachable in a default consumer configuration because remote consumers download every listed file (CVSS 3.1 base score 7.4, AV:N/AC:H/PR:N/UI:N, C:H/I:H/A:N). The attacker must influence the LIST/SFTP listing output - via a malicious, compromised or multi-tenant server, a virtual-filesystem-backed server, or an on-path attacker against plaintext FTP whose control channel has no integrity protection - and no public exploit has been identified at time of analysis.
RemediationAI
Vendor-released patch: Apache Camel 4.23.0 fixes the issue, with backports to 4.22.1 (4.22.x stream) and 4.18.5 (4.18.x LTS stream); users on the end-of-life 4.14.x stream must migrate to a supported stream because no fix will be issued for it, and the patch commits are visible in https://github.com/apache/camel/pull/25730, /25745, /25746 and /25747 with the advisory at https://camel.apache.org/security/CVE-2026-79984.html. Because the root cause is trust in the remote listing, compensating controls before patching must address who can supply that listing: allowlist the endpoint host and require authenticated host-key verification for SFTP rather than plaintext FTP (avoids on-path LIST rewriting, but plaintext FTP offers no equivalent - so tunnel it or migrate the scheme), and poll only a trusted, dedicated, single-tenant server, since the jailStartingDirectory option does not constrain this remote operand on unpatched versions despite its name and documentation. Additionally, avoid delete=true, move, preMove, moveFailed and readLock=rename on untrusted endpoints (these are the delete/rename escape paths, while plain retrieval remains reachable in any default consumer), and run the Camel endpoint under a least-privilege remote account confined by a server-side chroot or jail so that traversal beyond the polled directory cannot cross the account boundary; the trade-offs are loss of the delete/rename disposition features and tighter coupling of credentials to a jailed account.
Affected VersionsENISA
Affected Packages
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
CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) manifests here because Camel's remote-file consumers build each file's absolute remote path by concatenating the configured poll directory with the file name returned by the server's listing (FtpUtils.absoluteFilePath and GenericFileConsumer) and then apply no lexical normalization or containment check. That unvalidated path becomes the operand for every subsequent remote operation: retrieval via FtpOperations.retrieveFile / SftpOperations driven by GenericFile.getAbsoluteFilePath, deletion when delete=true via GenericFileDeleteProcessStrategy, and renaming when move, preMove, moveFailed or readLock=rename is set via GenericFileProcessStrategySupport and GenericFileRenameExclusiveReadLockStrategy; neither isValidFile nor isMatched performed any containment check. The trust issue is that a listing name is not route-controlled data - it comes from the remote server, so an on-path attacker against unauthenticated FTP can rewrite a LIST response without credentials, and a compromised or virtual-filesystem-backed server can emit traversal names directly; SFTP's transport integrity reduces this to server-side control. Notably, jailStartingDirectory, documented as confining Camel to the starting directory and enabled by default, governed only producer writes and (after earlier localWorkDirectory containment work) consumer downloads to the local work directory, so it did not constrain this remote operand. The upstream fix adds an isWithinStartingDirectory hook to GenericFileConsumer, overridden by RemoteFileConsumer, plus a separator-aware GenericFileHelper.isWithinDirectory helper (remote paths always use '/'), and rejects names that still resolve upward after compaction even when no boundary is configured. The mina-sftp scheme is affected because its consumer derives from the same RemoteFileConsumer base class.
Know when Apache 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
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Network-reachable with no attacker credentials (PR:N), but AC:H because the attacker must control the server's listing or MITM the channel; read/delete/rename yield C:H/I:H, no availability-of-system impact (A:N).
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
DescriptionCVE.org
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in Apache Camel Mina SFTP component.
This issue affects Apache Camel: from 4.18.0 before 4.18.5, from 4.19.0 before 4.22.1.
The Camel remote-file consumers poll a directory on a remote server and build the absolute remote path of each file by concatenating the configured directory with the file name reported in the server's directory listing. That concatenation (FtpUtils.absoluteFilePath and GenericFileConsumer) applied no lexical normalization and no check that the result stayed inside the directory being polled, and the resulting path became the operand for every subsequent remote operation on the file: retrieval (FtpOperations.retrieveFile / SftpOperations, reached from GenericFileConsumer where the retrieve name is taken verbatim from GenericFile.getAbsoluteFilePath), deletion when delete=true (GenericFileDeleteProcessStrategy), and renaming when move, preMove, moveFailed or readLock=rename is configured (GenericFileProcessStrategySupport and GenericFileRenameExclusiveReadLockStrategy). Neither isValidFile nor isMatched performed any containment check. A listing entry that is not a single path segment therefore resolved to a path outside the configured polling directory, causing Camel to read, delete or rename files outside it using the endpoint's own credentials. A listing name is not route-controlled data. It is supplied by the remote server, and the FTP control channel carries no integrity protection at all, so an on-path attacker can rewrite a LIST response without holding any credentials; a compromised, malicious or multi-tenant server, or a server backed by a virtual filesystem, can emit such a name directly. Retrieval is reachable in a default consumer configuration, since the remote consumers download every listed file; deletion and renaming additionally require one of the disposition options above, all of which are common. Escape from the directory Camel was configured to poll is unconditional, while escape from the server's own account boundary additionally depends on whether that server confines the account. The jailStartingDirectory option, which is documented as restricting Camel to the starting directory and is enabled by default, governed producer writes and, since the localWorkDirectory containment work, consumer downloads to the local work directory - but it did not constrain this remote operand, so its name and description claimed a boundary that was not enforced here. The same entry point had already been recognised on the local side: the localWorkDirectory download path was constrained so that a remote file name containing parent-directory segments could not resolve outside the local work directory. The remote operand was the remaining half of that surface. This artifact provides the mina-sftp scheme, an alternative SFTP implementation whose consumer derives from the same RemoteFileConsumer base class and therefore inherited the same unconstrained resolution.
Upgrade to Apache Camel 4.23.0, which fixes the issue. Users on the 4.22.x releases stream should upgrade to 4.22.1. Users on the 4.18.x LTS releases stream should upgrade to 4.18.5. The 4.14.x stream reached end of life and does not receive this fix; users on it should move to a supported releases stream.
Executive ViewAI
Apache Camel's remote-file consumers (FTP, SFTP, and mina-sftp) can be induced to read, delete, or rename files outside the directory an integration was configured to poll, using that endpoint's own credentials. This affects teams running Camel 4.18.0 through 4.18.4 or 4.19.0 through 4.22.0 against external or shared file servers, where a manipulated directory listing could expose or destroy data beyond the intended scope. Leadership should care because the blast radius is the credentials and file-server reach of each Camel integration, even though exploitation requires influence over the remote server or network path and no public exploit has been identified at time of analysis.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
More in Apache Camel
View allRemote code execution in Apache Camel's camel-coap component (versions 4.14.0-4.14.5, 4.18.0 before 4.18.1, and 4.19.0)
Unsafe Java deserialization in Apache Camel's camel-infinispan component allows arbitrary code execution when the ProtoS
Unauthenticated remote code execution affects the camel-hazelcast component of Apache Camel 4.0.0 through 4.18.4 and 4.1
Header-injection in the Apache Camel camel-atmosphere-websocket producer lets an external sender hijack WebSocket messag
Header-filter bypass in the Apache Camel Undertow component (4.11.0-4.14.8, 4.15.0-4.18.3, and 4.19.0-4.21.x) lets remot
Remote code execution in Apache Camel 3.18.0-4.14.5 and 4.15.0-4.18.1 stems from CXF and Knative HeaderFilterStrategy im
Message header injection in Apache Camel's camel-mail component (3.0.0 before 4.14.6 and 4.15.0 before 4.18.1) lets an a
Remote code execution via unsafe Java deserialization affects the camel-pqc component of Apache Camel 4.18.0-4.18.2 and
Unsafe Java deserialization in Apache Camel's camel-consul component (ConsulRegistry / ConsulRegistryUtils.deserialize)
Unauthenticated deserialization of attacker-controlled messages in Apache Camel's camel-jgroups consumer can lead to rem
Expression language injection in the Apache Camel dynamic-router-control endpoint allows a party who can place a message
Deserialization of untrusted data in the Apache Camel Spring Redis component (camel-spring-redis) allows an authenticate
EUVD-2026-104218
GHSA-3m83-xh6c-vxmh
NVD
CVE.org
Exploit-DB