Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-79984 — Runnable proof-of-concept reproducer for CVE-2026-79984, a path traversal in Apache Camel camel-mina-sftp, with malicious SFTP server fixtures and affected vs. fixed builds. | Kitploit
Tools/GitHubGitHub/oscerd/cve-2026-79984
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHuboscerd/cve-2026-79984

CVE-2026-79984

Runnable proof-of-concept reproducer for CVE-2026-79984, a path traversal in Apache Camel camel-mina-sftp, with malicious SFTP server fixtures and affected vs. fixed builds.

View Repository
1 day agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-79984 — camel-mina-sftp: consumer builds the remote path from the server's listing without containment

Runnable proof-of-concept reproducer for the Apache Camel vulnerability where the mina-sftp consumer — which derives from the same RemoteFileConsumer base class as the other remote-file consumers — builds the absolute remote path of each polled file by concatenating the configured directory with the name reported in the server's directory listing, with no lexical normalization and no containment check. That path then becomes the operand for retrieval (always), and for deletion or rename when delete=true, move, preMove, moveFailed or readLock=rename is configured.

An SFTP directory-entry name is a raw protocol string supplied by the server, so a compromised, malicious or multi-tenant server can report a name that is not a single path segment.

This is the mina-sftp sibling of CVE-2026-79983 (camel-ftp); both share the same root cause and the same fix.

RuntimeDirectoryStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-mina-sftp 4.22.0 (affected; fixed 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-mina-sftp 3.39.0 (Camel 4.22.0, affected; fixed control 3.40.0 / Camel 4.22.1)

camel-mina-sftp was introduced in Camel 4.18.0, so the component does not exist in the Camel 4.15.0 bundled by the latest-numbered Camel Quarkus; this reproducer uses Camel Quarkus 3.39.0 (Camel 4.22.0, affected), with 3.40.0 (Camel 4.22.1) as the patched control. Both modules therefore demonstrate the affected and the fixed behaviour.

What it demonstrates

The app embeds a deliberately malicious SFTP server (Apache MINA SSHD). It serves a real temporary directory tree but rewrites, in its SSH_FXP_READDIR reply, the name of one file in the polled directory /upload to the traversal string d/../../outside.txt (via a getShortName override). The name does not start with a dot, so Camel's hidden-file rule does not catch it, and /upload + d/../../outside.txt resolves to /outside.txt, one level above the polled directory. A plain mina-sftp consumer polls /upload.

  • Affected: it retrieves both normal.txt and the escaping /outside.txt.
  • Fixed: it keeps normal.txt and skips the escaping entry, logging Skipping file as it resolves outside the starting directory: upload/d/../../outside.txt.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Expected output on the affected build:

    name=[d/../../outside.txt]  <<< FILE FROM OUTSIDE THE POLLED DIRECTORY
        content: OUTSIDE-SECRET (/outside.txt, a file the consumer should never reach)
    name=[normal.txt]  (inside)

Vulnerability Summary

PropertyValue
Componentcamel-mina-sftp (mina-sftp scheme)
CWECWE-22 (Improper Limitation of a Pathname to a Restricted Directory)
SeverityHIGH
Attack vectorA READDIR entry name (server-supplied) that is not a single path segment
ImpactRead — and, with delete/move/readLock=rename, delete or rename — files outside the polled directory, using the endpoint's credentials
Affected VersionsFrom 4.18.0 before 4.18.5, from 4.19.0 before 4.22.1
Fixed Versions4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24487
CreditDilrevx from NSSL, SJTU

Advisory: https://camel.apache.org/security/CVE-2026-79984.html

The fix

GenericFileConsumer.isWithinStartingDirectory (overridden by RemoteFileConsumer, from which the mina-sftp consumer derives) compacts the resolved path and verifies, on path-segment boundaries, that it stays inside the polled directory; an entry resolving outside is skipped with a warning while the legitimate entries still process.

Mitigation if you cannot upgrade

Verify the server host key, constrain the consumer with filter/antInclude/include to accept only single-segment names, and avoid delete/move/preMove/moveFailed/readLock=rename against servers whose listings are not fully trusted. Where possible, confine the server account to the polled directory.

Disclaimer

This repository is published for educational and defensive purposes: to help Apache Camel users understand the vulnerability, verify whether they are affected, and confirm that upgrading resolves it. The malicious server and the "secret" are inert local fixtures. Do not use this material against systems you do not own or operate.

Download Tool