Table des matières
La semaine dernière, j'ai voulu être un bon développeur responsable. Une faille critique venait d'être annoncée dans React et Next.js, alors j'ai mis à jour tous mes projets.
Et là, mon Mac s'est mis à freezer à chaque build.
Après avoir failli jeter mon ordi par la fenêtre, j'ai trouvé la cause. Et la solution tient en 3 lignes de config.
Le contexte : une mise à jour de sécurité critique
Début décembre 2025, une faille critique est découverte dans React et Next.js : CVE-2025-55182 (surnommée "React2Shell").
Score CVSS : 10.0 sur 10. Le maximum.
Exécution de code à distance, sans authentification, exploitée activement par des groupes APT chinois. Bref, le genre de truc où tu mets à jour avant de finir ton café.
En bon vibecoder responsable, je mets à jour mes projets :
- Next.js 16.0.10 (patché)
- React 19.2.3 (patché)
Je régénère mon pnpm-lock.yaml, je lance pnpm audit → tout est clean.
Et là, je teste un pnpm build...
Mon Mac freeze complètement.
Le symptôme : 30 processus qui cramaient mon CPU
Je lance pnpm build sur mon projet Next.js. Tout se passe bien pendant 2 secondes, puis mon Mac commence à chauffer, le ventilateur s'emballe, et VS Code devient inutilisable.
Je suis obligé de forcer la fermeture.
En ouvrant Activity Monitor, je vois ça :
rg --files --hidden ... 6.2% CPU
rg --files --hidden ... 6.1% CPU
rg --files --hidden ... 6.0% CPU
... x30 processus30 processus rg qui tournent en parallèle. Chacun consomme 6% de CPU. Total : 180% de mon CPU cramé juste pour indexer des fichiers.
C'est quoi rg ?
rg c'est ripgrep, un outil de recherche ultra-rapide dans les fichiers. VS Code l'utilise en interne pour :
- La recherche globale (Cmd+Shift+F)
- L'indexation des fichiers du workspace
- Le file watcher qui détecte les changements
Le problème ? VS Code ne sait pas quand s'arrêter.
Pourquoi ça arrive maintenant ?
Deux facteurs combinés :
1. Turbopack génère plus de fichiers
Next.js 15+ utilise Turbopack par défaut pour le build. C'est plus rapide, mais ça génère aussi plus de fichiers intermédiaires dans .next/ :
.next/
├── cache/ # Cache de compilation (énorme)
├── server/ # Code serveur compilé
├── static/ # Assets statiques
└── ... # Des milliers d'autres fichiers2. VS Code réagit à chaque fichier
VS Code détecte chaque nouveau fichier et lance un processus ripgrep pour l'indexer. Sauf que les fichiers arrivent plus vite que VS Code ne peut les traiter.
Résultat : une avalanche de processus qui s'accumulent.
Le bug est connu (et pas fixé)
Ce n'est pas un problème de mon côté. C'est un bug documenté chez Microsoft :
- Issue #224068 - 100% CPU usage
- Issue #164665 - Multiple processes lockup
- Issue #88991 - 50-800% CPU
Pas de fix prévu côté Microsoft. C'est à nous de configurer les exclusions.
La solution
Ouvre tes settings VS Code globaux :
| OS | Chemin |
|---|---|
| Mac | ~/Library/Application Support/Code/User/settings.json |
| Windows | %APPDATA%\Code\User\settings.json |
| Linux | ~/.config/Code/User/settings.json |
Ajoute ces lignes :
{
"files.watcherExclude": {
"**/.next/**": true,
"**/node_modules/**": true,
"**/dist/**": true,
"**/build/**": true,
"**/.turbo/**": true,
"**/out/**": true
},
"search.exclude": {
"**/.next/**": true,
"**/node_modules/**": true,
"**/dist/**": true,
"**/build/**": true
},
"search.followSymlinks": false
}Redémarre VS Code et relance ton build. Normalement tu n'auras plus de freeze.
Pourquoi ça marche ?
| Setting | Effet |
|---|---|
files.watcherExclude | VS Code ignore ces dossiers pour le file watcher |
search.exclude | Exclut aussi de la recherche globale |
search.followSymlinks | Évite les boucles infinies avec les symlinks |
Bonus : config par projet
Tu peux aussi créer un fichier .vscode/settings.json à la racine de ton projet Next.js :
{
"files.watcherExclude": {
"**/.next/**": true
}
}Comme ça, les settings sont versionnés avec ton projet et tes collègues en profitent aussi.
Attends, t'as pas encore mis à jour ?
| CVE | Type | CVSS | Impact |
|---|---|---|---|
| CVE-2025-55182 | RCE | 10.0 | Exécution de code à distance, sans auth |
| CVE-2025-66478 | RCE | 10.0 | Même faille côté Next.js |
| CVE-2025-29927 | Auth Bypass | 9.1 | Bypass complet du middleware |
Versions minimum à avoir :
- Next.js :
14.2.35+(14.x),15.5.9+(15.x),16.0.10+(16.x) - React :
19.0.3+,19.1.4+, ou19.2.3+
# Vérifier tes versions
cat package.json | grep -E '"next"|"react"'
# Mettre à jour
pnpm update next react react-dom
# Regénérer le lock file
rm pnpm-lock.yaml && pnpm install
# Vérifier qu'il n'y a plus de vulnérabilités
pnpm auditCe que j'ai appris
| Problème | Cause | Solution |
|---|---|---|
| CPU 100% pendant build | VS Code indexe .next/ | files.watcherExclude |
| VS Code freeze | 30+ processus ripgrep | Exclure les dossiers de build |
| Apparu après update Next.js | Turbopack génère plus de fichiers | Config globale + projet |
Le takeaway
Si tu viens de mettre à jour Next.js/React pour patcher les CVE critiques de décembre 2025 et que ton ordi freeze pendant les builds : c'est pas ton code le problème.
C'est VS Code qui essaie d'indexer des fichiers dont il n'a pas besoin.
3 lignes de config et c'est réglé.
Bonus : N8N aussi
Et pendant quon parle de failles critiques : si tu utilises N8N en self-hosted, vérifie ta version.
Plusieurs CVE critiques ont été découvertes fin 2025/début 2026 :
| CVE | Type | CVSS | Versions vulnérables |
|---|---|---|---|
| CVE-2026-21858 (Ni8mare) | Accès fichiers sans auth | 10.0 | 1.65.0 → 1.120.4 |
| CVE-2026-21877 | RCE écriture fichiers | 10.0 | 0.123.0 → 1.121.2 |
| CVE-2025-68613 | RCE expression injection | 9.9 | 0.211.0 → 1.120.3 |
| CVE-2025-68668 (N8scape) | Bypass sandbox Python | 9.9 | Toutes les v1.x |
Quelle version installer ?
Si tu utilises le Python Code Node → v2.0+ obligatoire (N8scape affecte toutes les v1.x, pas de patch)
Sinon → v1.122.0+ minimum, ou désactive Python : N8N_PYTHON_ENABLED=false
La v2 apporte une architecture "Secure by Default" avec task runners isolés. Cest le choix recommandé si tu peux migrer.
Ressources
Sur les CVE patchées :
Sur le bug VS Code :
Commentaires