CVE-2026-66906
Apache Camel : Camel-Azure-Storage-Blob : l'opération downloadBlobToFile a construit la cible de téléchargement locale à partir du nom du blob distant sans la contraindre au fileDir configuré
- Publié
- 24 août 2026
- Mise à jour
- 25 août 2026
- Attribution de CNA
- apache
- Preuve observée
- 24 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NFaible · 30 prochains jours
- Percentile
- 43,6 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Vulnérabilité de traversée de chemin relatif dans le composant Azure Storage Blob d'Apache Camel. Ce problème affecte Apache Camel : à partir de 4.0.0 et avant 4.14.9, à partir de 4.15.0 et avant 4.18.4, à partir de 4.19.0 et avant 4.22.0. Le composant camel-azure-storage-blob peut télécharger un blob Azure Storage vers le système de fichiers local via son opération downloadBlobToFile, en écrivant dans le répertoire désigné par l'option de point de terminaison fileDir, qui est documentée comme utilisable à la fois par le producteur et le consommateur. BlobOperations.downloadBlobToFile construisait la cible locale en joignant fileDir au nom du blob distant exactement tel que le SDK Azure le rapportait (new File(fileDir, client.getBlobName())) et transmettait le résultat directement à l'appel de téléchargement du SDK, sans normalisation lexicale ni vérification que l'emplacement résolu restait dans fileDir. Le nom du blob n'est pas une donnée contrôlée par la route : le consommateur énumère le conteneur dans BlobConsumer.createBatchExchangesFromContainer, qui liste les blobs et crée un échange par entrée à partir de BlobItem.getName() tel quel, sans appliquer de filtrage des noms par défaut. Un nom de blob contenant des segments de répertoire parent se résolvait donc vers un emplacement situé en dehors du fileDir configuré, permettant à quiconque pouvant influencer les noms présents dans le conteneur consommé d'amener Camel à créer ou à écraser un fichier à un emplacement de son choix, avec les privilèges du processus Camel. Selon ce que le processus a le droit d'écrire, écraser un fichier en dehors du répertoire de téléchargement peut avoir un impact allant au-delà de la perte d'intégrité de ce fichier. Les conteneurs de blobs Azure Storage utilisent un espace de noms plat dans lequel le nom du blob est une clé opaque ; un nom portant de tels segments est donc stocké et listé tel quel. L'option fileDir est un paramètre de configuration ordinaire du groupe common et ne porte aucun marqueur de sécurité ; rien ne signalait donc aux utilisateurs que sa valeur n'était pas appliquée comme frontière de confinement. Les autres consommateurs de téléchargement de fichiers de Camel - camel-file, camel-ftp, camel-smb, camel-mina-sftp et camel-azure-files - limitaient déjà leurs téléchargements locaux au répertoire configuré à l'aide d'une vérification des limites de segments de chemin ; le chemin de téléchargement de camel-azure-storage-blob n'était pas couvert par ce travail. Il est recommandé aux utilisateurs de mettre à niveau vers la version 4.22.0, qui corrige le problème. Si les utilisateurs se trouvent sur le flux de versions LTS 4.14.x, il leur est suggéré de passer à 4.14.9. S'ils se trouvent sur le flux de versions 4.18.x, il leur est suggéré de passer à 4.18.4. Pour les déploiements qui ne peuvent pas être mis à niveau immédiatement, limitez les noms sur lesquels le consommateur agira à l'aide de l'option de point de terminaison regex, qui est appliquée à chaque nom de blob listé comme une correspondance sur la chaîne complète, afin que seuls les noms simples à un seul segment soient acceptés et que tout nom portant un séparateur de chemin ou un segment de répertoire parent soit filtré avant la création d'un échange ; l'option prefix peut en outre réduire la liste côté serveur, en notant que lorsque les deux sont définies, regex a la priorité et prefix est ignorée. Alternativement, évitez l'opération downloadBlobToFile sur des conteneurs non fiables et écrivez la charge utile depuis la route sous un nom de fichier que la route contrôle elle-même, plutôt qu'un nom tiré de la liste distante. Par défense en profondeur, traitez les noms de blobs de tout conteneur accessible en écriture depuis l'extérieur comme des entrées non fiables et n'en dérivez pas de chemins du système de fichiers local.
Sources
1Reproducteurs de preuve de concept pour la vulnérabilité de traversée de chemin d'Apache Camel (CVE-2026-66906) dans camel-azure-storage-blob, démontrant l'écriture arbitraire de fichiers via la traversée de noms de blob, avec les détails des versions affectées et corrigées.
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.