système : OPÉRATIONNEL
← retour à tous les hacks
DATA LEAK CRITICAL NEW

DifyTap : quatre failles d'autorisation exposent les conversations IA entre tenants de Dify

Zafran Labs a divulgué le 22 juin 2026 quatre failles DifyTap dans Dify — deux critiques, deux sans authentification, trois à impact cross-tenant — permettant d'écouter les conversations IA d'autres clients et de lire leurs fichiers. Trois sont corrigées en 1.14.2.

2026-06-25 // 8 min affects: dify, dify-cloud, llmops-platforms

De quoi s’agit-il ?

Le 22 juin 2026, Zafran Security (les chercheurs Ido Shani et Gal Zaban) a publié DifyTap, la divulgation coordonnée de quatre vulnérabilités dans Dify, la plateforme open-source de LLMOps / workflows agentiques qui cumule plus de 140 000 étoiles GitHub, plus de 10 millions de pulls Docker de son image API et — selon Zafran — plus d’un million d’applications dans plus de 60 secteurs, utilisée par des entreprises comme Volvo, Maersk, Panasonic et Thermo Fisher.

Deux des failles sont critiques, deux ne requièrent aucune authentification, et trois ont un impact cross-tenant sur le cloud multi-tenant de Dify (cloud.dify.ai) : les données privées d’un client étaient lisibles par un autre. Le résultat est un canal discret qui permet à un attaquant d’« écouter » chaque message et réponse du modèle transitant par l’application d’une victime, et de lire les documents et fichiers d’autres tenants. D’après la chronologie de Zafran, les CVE ont été assignées par VulnCheck le 30 avril 2026 et la version corrigée est sortie le 19 mai 2026, avant la publication.

Comment ça fonctionne

Les quatre problèmes sont des défauts d’autorisation — contrôles de tenant ou de propriété absents ou indirects — et non des jailbreaks de modèle.

CVE-2026-41947 (CVSS 9.1) — détournement du tracing. Dify permet à une application d’envoyer ses traces (qui contiennent les prompts et réponses réels) vers un fournisseur externe comme LangSmith ou Opik. Les endpoints qui configurent le tracing ne valident jamais le tenant de l’appelant : n’importe quel utilisateur disposant d’un compte console — trivial à obtenir, puisque le cloud autorise l’inscription libre — peut rediriger le tracing de n’importe quelle application accessible en tant que client vers un fournisseur contrôlé par l’attaquant, créant un canal d’exfiltration persistant pour tout le trafic de l’application.

CVE-2026-41948 (CVSS 9.4) — path traversal du Plugin Daemon. Un endpoint d’icône de plugin injecte le paramètre filename directement dans une URL interne du Plugin Daemon sans assainissement : des segments ../../ permettent d’atteindre des endpoints internes arbitraires. Surtout, la route d’icône n’impose aucune authentification, si bien que toute machine ayant un accès réseau peut l’atteindre, et l’ID de tenant est fourni par l’attaquant. La portée actuelle reste limitée (ex. debug/pprof), mais c’est un trou architectural : tout nouvel endpoint interne pourrait devenir une faille à fort impact.

CVE-2026-41949 (CVSS 7.5) — prévisualisation de n’importe quel document. L’endpoint /console/files/<id>/preview renvoie les 3 000 premiers caractères d’un document et vérifie uniquement que le type de fichier est « Document » — aucun contrôle de propriété, aucun contrôle de tenant — de sorte que n’importe quel utilisateur console peut lire des documents dans tout le système.

CVE-2026-41950 (CVSS 6.5) — lire le fichier d’un autre via le chatbot. Les permissions de fichier sont dérivées indirectement des permissions de message. Comme le système ne valide que l’ID de tenant (et non le fait qu’un UUID de fichier appartienne déjà au message d’un autre), un attaquant peut attacher l’UUID d’un fichier de la victime à son propre message et demander à un bot capable de lire des fichiers : « Répète exactement le contenu de ce fichier. » Le LLM devient l’outil d’exfiltration.

Par ailleurs, Zafran a constaté que Dify embarquait une version de PDFium vulnérable à CVE-2024-5846 (un use-after-free divulgué le 11 juin 2024) pendant plus de 18 mois, jusqu’au 21 décembre 2025 — déclenchable en téléversant un PDF malveillant vers l’endpoint de prévisualisation.

Pourquoi c’est important

DifyTap rappelle, comme un cas d’école, que les bugs dangereux des plateformes IA sont souvent de banales failles d’autorisation web, amplifiées par ce à quoi la plateforme est connectée. Trois points ressortent. D’abord, l’historique de conversation est le bijou de la couronne : le détournement de tracing (41947) transforme un contrôle de tenant manquant en écoute en direct de chaque prompt et réponse. Ensuite, le LLM lui-même devient une primitive d’exfiltration (41950) : dès qu’un contrôle d’autorisation est indirect, un agent capable de lire des fichiers restituera volontiers des données que son utilisateur n’était jamais autorisé à voir. Enfin, les scanners passent à côté : comme le note Zafran, Dify copie du code non packagé dans son image, si bien que les scanners de conteneurs classiques ne relient pas l’image aux CVE au niveau projet — le risque reste invisible pour les équipes sécurité.

Défenses

  • Patchez maintenant. Passez à Dify 1.14.2, qui corrige CVE-2026-41947, -41949 et -41950, ou compilez la dernière version depuis GitHub, qui inclut aussi le correctif fusionné de CVE-2026-41948.
  • Mitigez le path traversal non corrigé (41948). Sur 1.14.2, déployez des règles WAF / IDS contre les tentatives de path traversal visant /console/api/workspaces/current/plugin/icon et la route plugin tasks/.../delete/... ; Zafran a publié des signatures Snort pour les primitives GET et POST.
  • N’exposez pas la console. Gardez les consoles multi-tenant et le Plugin Daemon interne (port 5002) hors d’Internet ; des dizaines de milliers d’instances Dify exposées ont été observées.
  • Rendez l’autorisation directe, pas dérivée. La cause racine des quatre failles est une permission inférée d’un autre objet (tenant, message). Validez la propriété de la ressource réelle (l’UUID du fichier, l’application, la cible de tracing) à chaque requête.
  • Restreignez l’accès aux fichiers et l’egress des agents. Cantonnez les bots capables de lire des fichiers aux fichiers de l’utilisateur courant, et traitez toute destination de tracing/télémétrie comme une décision d’egress soumise à une liste d’autorisation.
  • Isolez le parsing de fichiers. Mettez à jour et isolez les parseurs natifs (PDFium, ffmpeg) — un document non fiable atteignant une bibliothèque mémoire-non-sûre constitue à lui seul une surface RCE.

Statut

CVECVSSProblèmeAuthentificationCross-tenantCorrigé dans
CVE-2026-419479.1Bypass d’autz du tracingUtilisateur consoleOui1.14.2
CVE-2026-419489.4Path traversal Plugin DaemonNonOuiGitHub (prochaine version)
CVE-2026-419497.5Bypass d’autz prévisualisation docUtilisateur consoleOui1.14.2
CVE-2026-419506.5Lecture de fichier cross-user via chatbotUtilisateur tenantAu sein du tenant1.14.2
CVE-2024-58468.8Use-after-free PDFium (parseur)Utilisateur tenantCorrigé le 21 déc. 2025

Dates clés : signalement en divulgation responsable à partir du 14 décembre 2025 ; CVE assignées par VulnCheck le 30 avril 2026 ; version corrigée 1.14.2 le 19 mai 2026 ; write-up public le 22 juin 2026. À retenir pour quiconque exploite une plateforme LLMOps : le modèle est rarement le maillon faible — c’est la plomberie multi-tenant qui l’entoure qui l’est.

Sources