CVE-2025-55182 : Hackers ciblent 766 hôtes Next.js pour voler des données
Origines et historique
Au début d'avril 2026, une campagne active exploitant la vulnérabilité identifiée comme CVE-2025-55182 a compromis au moins 766 instances Next.js¹². L'attaque, surnommée React2Shell, cible des déploiements où le rendu côté serveur (SSR) est couplé à des mécanismes de sérialisation ou de templating vulnérables. La faille permet l'exécution de code arbitraire sur les hôtes affectés et a conduit à la récolte massive de secrets sensibles, y compris clés d'API et informations de configuration, puis à leur exfiltration vers des infrastructures contrôlées par les attaquants¹.
Le profil de la campagne est clair: balayages massifs d'installations Next.js exposées publiquement, exploitation automatisée des points faibles, puis déploiement d'un implant léger chargé d'extraire et d'exfiltrer les informations d'identification trouvées sur la machine. Les premières analyses publiques et techniques détaillent l'ampleur et la rapidité de propagation observées lors des premiers jours d'avril 2026¹²³.
Fonctionnement technique
Mécanisme d'exploitation initial
La vulnérabilité s'appuie sur la combinaison de rendu SSR et d'opérations de désérialisation non filtrées. Concrètement, certains composants React utilisés côté serveur reconstruisent des objets à partir de contenus fournis par l'utilisateur en s'appuyant sur des fonctions dangereuses comme eval ou new Function, ou sur des bibliothèques de templating obsolètes qui n'échappent pas correctement les entrées. Lorsqu'un champ mal nettoyé contient du code JavaScript, le serveur peut l'exécuter, ouvrant la porte à des commandes système et à l'implantation d'un agent malveillant³.
Conditions facilitantes observées:
- Sérialisation/désérialisation via eval ou new Function dans le parcours SSR.
- Dépendances de templating ou bibliothèques NPM non patchées.
- Processus Node.js s'exécutant avec des permissions élevées.
Chaîne d'attaque standard observée
- Découverte: balayage automatisé d'URLs publiques pointant vers des applications Next.js vulnérables.
- Exploitation: injection d'un payload visant la désérialisation pour déclencher de l'exécution de code côté serveur.
- Persistance: dépôt d'un agent minimal (implant léger) pour garder un accès furtif et persistant.
- Collecte: recherche automatisée de secrets dans fichiers .env, home, répertoires d'application, historiques de shells; extraction des tokens, clés et credentials.
- Exfiltration: envoi des données collectées vers des endpoints contrôlés par l'attaquant via canaux chiffrés ou covert channels.
Modes d'exfiltration
Les opérateurs ont recours à plusieurs voies pour sortir les secrets sans déclencher les protections classiques:
- Requêtes HTTPS POST vers domaines externes configurés pour accepter des uploads.
- Chargement vers des buckets objets mal protégés.
- Exfiltration par requêtes DNS ou encodage dans des requêtes réseau pour contourner les contrôles périmétriques.
Études de cas
Cas A: Startup SaaS - Fuite de clés Stripe et DB
Impact technique: un implant détecté sous la forme d'un processus enfant Node a extrait un fichier .env contenant DATABASE_URL et STRIPE_SECRET. Des transactions frauduleuses ont été observées peu après la fuite des clés.
Actions immédiates applicables: rotation des clés Stripe et des credentials de base de données; mise en quarantaine et backup forensic de l'instance compromise; analyse des logs réseau et système pour déterminer fenêtre d'exposition.
Cas B: Agence web - Compromission via clés SSH
Impact: récupération de clés SSH privées depuis des environnements de développement et production, utilisée ensuite pour accéder aux sites de clients, déployer du code non autorisé et installer des backdoors.

Actions immédiates applicables: révocation et régénération des clés SSH compromises; vérification des accès CI/CD; externalisation des identifiants dans un coffre-fort de secrets.
Cas C: Compromission à grande échelle - 766 hôtes Next.js
Impact: campagne à large échelle affectant des centaines d'hôtes; facteur commun identifié: dépendances NPM non mises à jour et secrets stockés en clair dans le code ou des fichiers .env. Les opérateurs ont automatisé la récolte et l'exfiltration des informations sensibles¹².
Recommandations opérationnelles (synthèse technique)
Actions immédiates (0-48h)
- Vérifiez si vos versions de Next.js et vos bibliothèques de templating sont vulnérables à CVE-2025-55182 et appliquez les correctifs disponibles³.
- Lancez une rotation forcée des secrets exposés: clés AWS, clés Stripe, tokens GitHub, clés SSH. Priorisez les clés à privilèges élevés.
- Scannez les endpoints et serveurs pour des indicateurs de compromission: processus Node.js inconnus, connexions sortantes anormales, fichiers binaires ou scripts récents dans /tmp ou /var/www.
- Isolez les hôtes compromis pour éviter la propagation et préservez les preuves pour une analyse forensique.
Mesures structurelles (1-4 semaines)
- Déployez une solution de gestion de secrets (HashiCorp Vault, AWS Secrets Manager) et éliminez les fichiers .env avec secrets en clair.
- Refactorez le rendu SSR pour supprimer l'usage d'eval ou new Function. Remplacez toute logique de sérialisation dangereuse par des parsers sûrs.
- Appliquez le principe du moindre privilège aux rôles IAM et limitez les secrets embarqués dans les images ou variables d'environnement accessibles.
- Activez la rotation automatique des credentials et migrez vers des identifiants temporaires (roles IAM, short-lived tokens).
Détections et règles pratiques
- Déployez règles EDR/IDS pour détecter les exécutions suspectes de shells enfants depuis Node.js et les connexions réseau vers domaines inconnus.
- Recherchez automatiquement motifs de secrets dans les systèmes: par exemple grep récurrent sur "AWS_ACCESS_KEY_ID|STRIPE|GITHUB_TOKEN" dans répertoires système.
- Surveillez les uploads sortants vers buckets et les requêtes DNS volumétriques inhabituelles.
Coût de l'inaction
Ne pas agir rapidement expose l'organisation à des pertes financières directes via transactions frauduleuses, compromission des comptes cloud et frais de remédiation. Au-delà du coût immédiat, la fuite de secrets peut entraîner une cascade d'accès non autorisés, compromission des pipelines CI/CD et atteinte longue durée à la réputation. Des conséquences juridiques et réglementaires sont également possibles si des données sensibles d'utilisateurs sont exposées. Agir maintenant réduit significativement les risques opérationnels et financiers associés à cette campagne¹².