Un nouvel outil d’attaque circule activement : les cybercriminels scannent massivement Internet à la recherche d’applications React vulnérables à React2Shell, une technique d’exécution de code à distance exploitant des composants mal configurés. Ce tutoriel vous guide pour auditer et protéger vos applications React en production.
Qu’est-ce que React2Shell ?
React2Shell exploite des composants React côté serveur (SSR) qui désérialisent des données utilisateur sans validation. L’attaquant injecte du code JavaScript malveillant via des props non sanitisés, obtenant ainsi une exécution de commandes sur le serveur. Les frameworks comme Next.js et Remix sont particulièrement ciblés lorsqu’ils utilisent dangerouslySetInnerHTML ou des hydrations non sécurisées.
Étape 1 : Identifier les composants vulnérables
Commencez par auditer votre codebase avec grep :
grep -rn "dangerouslySetInnerHTML" src/— repérez tout rendu HTML brutgrep -rn "serialize\|deserialize\|eval(" src/— identifiez les désérialisationsgrep -rn "getServerSideProps\|getStaticProps" src/— vérifiez les entrées côté serveur
Étape 2 : Scanner avec des outils automatisés
Utilisez Semgrep avec des règles spécifiques React :
- Installez :
pip install semgrep - Scannez :
semgrep --config p/react --config p/xss src/ - Ajoutez les règles OWASP :
semgrep --config p/owasp-top-ten src/
Étape 3 : Appliquer les correctifs
- Remplacez dangerouslySetInnerHTML par des bibliothèques de sanitisation comme
DOMPurify - Validez toutes les entrées SSR avec des schémas Zod ou Joi avant le rendu
- Activez le CSP (Content Security Policy) strict :
script-src 'self'; object-src 'none' - Mettez à jour Next.js vers la dernière version — les correctifs récents adressent plusieurs vecteurs React2Shell
- Désactivez le mode debug en production :
NODE_ENV=production
Étape 4 : Monitorer en continu
Configurez une alerte Wazuh pour détecter les tentatives d’exploitation :
- Surveillez les logs d’accès pour les payloads contenant
__proto__,constructorourequire() - Créez une règle custom Wazuh (niveau 12+) sur ces patterns dans vos logs applicatifs
- Intégrez npm audit dans votre pipeline CI/CD pour détecter les dépendances vulnérables
Conclusion
L’outil de scan React2Shell montre que les attaquants industrialisent l’exploitation des frameworks JavaScript modernes. En auditant vos composants, en appliquant une sanitisation stricte et en surveillant vos logs, vous réduisez considérablement votre surface d’attaque. N’attendez pas d’être scanné — sécurisez vos applications React dès aujourd’hui.