UNKNOWNCVE-2026-33943

Happy DOM ECMAScriptModuleCompiler : les noms d’exportation non nettoyés sont interpolés en tant que code exécutable

Plateforme

nodejs

Composant

happy-dom

Corrigé dans

20.8.8

### Résumé Une vulnérabilité d’injection de code dans `ECMAScriptModuleCompiler` permet à un attaquant de réaliser une exécution de code à distance (RCE, Remote Code Execution) en injectant des expressions JavaScript arbitraires dans les déclarations `export { }` dans les scripts de module ES traités par happy-dom. Le compilateur interpole directement le contenu non nettoyé dans le code généré en tant qu’expression exécutable, et le filtre de guillemets ne supprime pas les backticks, ce qui permet aux charges utiles basées sur des littéraux de modèle de contourner la désinfection. ### Détails **Fichier vulnérable** : `packages/happy-dom/src/module/ECMAScriptModuleCompiler.ts`, lignes 371 à 385 Le gestionnaire « Objet d’exportation » extrait le contenu de `export { ... }` à l’aide de l’expression régulière `export\s*{([^}]+)}`, puis génère du code exécutable en l’interpolant directement : } else if (match[16] && isTopLevel && PRECEDING_STATEMENT_TOKEN_REGEXP.test(precedingToken)) { // Export object const parts = this.removeMultilineComments(match[16]).split(/\s*,\s*/); const exportCode: string[] = []; for (const part of parts) { const nameParts = part.trim().split(/\s+as\s+/); const exportName = (nameParts[1] || nameParts[0]).replace(/["']/g, ''); const import

Comment corriger

Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.

Surveillez vos dépendances automatiquement

Recevez des alertes quand de nouvelles vulnérabilités affectent vos projets.

Commencer gratuitement