
Reproducer und Analyse für CVE-2026-79986, einen Path Traversal in Apache Camel camel-azure-files, bei dem Namen aus dem Share-Listing das abgefragte Verzeichnis verlassen.
Reproducer-Repository für die Apache-Camel-Schwachstelle, bei der der azure-files-Consumer — der von derselben
RemoteFileConsumer-Basisklasse wie die anderen Remote-File-Consumer abgeleitet ist und den Remote-Pfad über einen
einfachen Verkettungs-Helper zusammensetzt — den Remote-Pfad jeder abgefragten Datei durch Verkettung des
konfigurierten Verzeichnisses mit dem im Azure-File-Share-Listing gemeldeten Namen erstellt, ohne
Containment-Prüfung. Ein Listing-Name, der kein einzelnes Pfadsegment ist, wurde daher außerhalb des abgefragten
Verzeichnisses aufgelöst — für den Abruf und, mit delete/move/preMove/moveFailed/readLock=rename, für
Löschung oder Umbenennung.
Dieser Reproducer ist nur für Autoren bestimmt — siehe unten — und ist das Azure-Files-Gegenstück zu den ausführbaren CVE-2026-79983 (
camel-ftp) und CVE-2026-79984 (camel-mina-sftp), die dieselbe Grundursache und denselben Fix Ende-zu-Ende gegen einen eingebetteten bösartigen Server demonstrieren.
Daher enthält dieses Repository die exakte betroffene Consumer-Verdrahtung (eine echte camel-azure-files-Route,
siehe AzureFilesRoute.java / AzureFilesRoutes.java), dokumentiert den Mechanismus und den Fix und überlässt die
ausführbare Ende-zu-Ende-Demonstration den FTP- und SFTP-Reproducern oben.
| Laufzeit | Verzeichnis | Stack |
|---|---|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.5.13 + camel-azure-files 4.22.0 (betroffen; behoben in 4.22.1) |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.29.0 + camel-quarkus-azure-files 3.29.0 (Camel 4.15.0, betroffen) |
Beide Module kompilieren und starten sauber ohne Azure-Anmeldedaten (die Route ist mit autoStartup=false definiert).
Setzen Sie -Daz.enabled=true mit az.account/az.share/az.sharedKey, um die exakt betroffene Route auf einen
eigenen Azure File-Share 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-azure-files (Schema azure-files) |
| CWE | CWE-22 (Unzureichende Einschränkung eines Pfadnamens auf ein eingeschränktes Verzeichnis) |
| Schweregrad | HOCH |
| Angriffsvektor | Ein Name aus einer Share-Auflistung (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.0.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-79986.html
Der azure-files-Consumer 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 Auflistungsname mit Traversal-Segmenten nicht mehr den Operanden für Abrufen/Löschen/Umbenennen erreicht.
Beschränken Sie den Consumer mit filter/antInclude/include darauf, nur einsegmentige Namen zu akzeptieren, und vermeiden Sie
delete/move/preMove/moveFailed/readLock=rename bei Shares, deren Auflistungen nicht vollständig vertrauenswürdig sind.
Dieses Repository wird zu Bildungs- und Verteidigungszwecken veröffentlicht: um Apache-Camel-Nutzern 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.