
Reproducer und Analyse für CVE-2026-79985, einen Path Traversal in Apache Camel camel-smb, bei dem Namen aus dem Share-Listing die Verzeichnisabgrenzung umgehen, einschließlich betroffener Routen und Details zur Behebung.
Reproducer-Repository für die Apache-Camel-Schwachstelle, bei der der smb-Consumer den Remote-Pfad jeder
abgefragten Datei durch Verkettung des konfigurierten Verzeichnisses mit dem im SMB-Share-Listing gemeldeten Namen
aufbaut, ohne Containment-Prüfung. SmbConsumer durchläuft das Listing selbst (nicht über RemoteFileConsumer) und
überspringt nur die exakten Einträge . und .., sodass ein Name, der Traversal-Segmente in irgendeiner anderen Form
enthielt, ungeprüft verkettet wurde — was beim Abruf zu einem Pfad außerhalb des abgefragten Verzeichnisses führte und,
mit delete/move/preMove/moveFailed/readLock=rename, zu Löschung oder Umbenennung.
Dieser Reproducer ist nur für Autoren bestimmt — siehe unten — und ist das SMB-Pendant zu den lauffähigen CVE-2026-79983 (
camel-ftp) und CVE-2026-79984 (camel-mina-sftp), die die identische Grundursache und den Fix Ende zu Ende gegen einen eingebetteten bösartigen Server demonstrieren.
Wie die Advisory selbst ausführt, erfordert das Erreichen des Problems über SMB
„einen Server, der einen Listing-Namen ausgibt, der kein einzelnes Pfadsegment ist, was eine konforme SMB2-Implementierung nicht tut; die Exposition wurde auf derselben Grundlage wie bei den anderen Remote-File-Consumern korrigiert, statt aus einem nachgewiesenen Proof of Concept gegen dieses Schema."
Es gibt keinen einbettbaren bösartigen SMB-Server, der einen solchen Namen ausgibt (anders als bei FTP, wo der VFS von
Apache MINA FtpServer dazu gebracht werden kann, und bei SFTP, wo getShortName von Apache MINA SSHD überschrieben
werden kann). Daher enthält dieses Repository die exakte betroffene Consumer-Verdrahtung (eine echte
camel-smb-Route, siehe SmbRoute.java / SmbRoutes.java) und dokumentiert den Mechanismus und den Fix, und
überlässt die lauffähige End-to-End-Demonstration den FTP- und SFTP-Reproducern oben.
| Laufzeit | Verzeichnis | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-smb 4.22.0 (betroffen; behoben in 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-smb 3.29.0 (Camel 4.15.0, betroffen) |
Beide Module kompilieren und starten sauber ohne SMB-Server (die Route ist mit autoStartup=false definiert). Setzen
Sie -Dsmb.enabled=true mit smb.host/smb.share/smb.username/smb.password, um die exakt betroffene Route auf
einen eigenen SMB-Server zu richten.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack # prints the explanation + links to the runnable PoCs
docker compose down
| Eigenschaft | Wert |
|---|---|
| Komponente | camel-smb (smb-Schema) |
| CWE | CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) |
| Schweregrad | HOCH |
| Angriffsvektor | Ein Name aus einer Freigabeliste (vom Server geliefert), der kein einzelnes Pfadsegment ist |
| Auswirkung | Lesen – und mit delete/move/readLock=rename Löschen oder Umbenennen – von Dateien außerhalb des abgefragten Verzeichnisses unter Verwendung der Anmeldeinformationen des Endpunkts |
| Betroffene Versionen | Ab 4.2.0 vor 4.18.5, ab 4.19.0 vor 4.22.1 |
| Behobene Versionen | 4.18.5, 4.22.1, 4.23.0 |
| JIRA | CAMEL-24487 |
| Danksagung | Dilrevx von NSSL, SJTU |
Sicherheitshinweis: https://camel.apache.org/security/CVE-2026-79985.html
SmbConsumer wendet nun dieselbe Eingrenzungsprüfung an wie die anderen Remote-Datei-Consumer: Ein aufgelöster Pfad, der
außerhalb des abgefragten Verzeichnisses liegt, wird mit einer Warnung übersprungen, sodass ein Listenname mit
Traversal-Segmenten nicht mehr den Operanden für Abrufen/Löschen/Umbenennen erreicht.
Beschränken Sie den Consumer mit filter/antInclude/include auf die Annahme von Namen mit nur einem Segment, und vermeiden Sie
delete/move/preMove/moveFailed/readLock=rename gegenüber Servern, deren Auflistungen nicht vollständig vertrauenswürdig sind. Beschränken Sie
nach Möglichkeit das Serverkonto auf das abgefragte Verzeichnis.
Dieses Repository wird zu Bildungs- und Verteidigungszwecken veröffentlicht: um Apache-Camel-Benutzern zu helfen, die Schwachstelle zu verstehen, zu prüfen, ob sie betroffen sind, und zu bestätigen, dass ein Upgrade sie behebt. Verwenden Sie dieses Material nicht gegen Systeme, die Ihnen nicht gehören oder die Sie nicht betreiben.