CVE-2026-23950
node-tar présente une condition de course dans les réservations de chemin via des collisions de ligatures Unicode sur macOS APFS
- Publié
- 20 janv. 2026
- Mise à jour
- 1 sept. 2026
- Attribution de CNA
- GitHub_M
- Preuve observée
- 25 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:LFaible · 30 prochains jours
- Percentile
- 17,7 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
# node-tar — Vulnérabilité de course (Race Condition) permettant l'écrasement arbitraire de fichiers node-tar, un Tar pour Node.js, présente une vulnérabilité de type course (race condition) dans les versions jusqu'à la 7.5.3 incluse. Cela est dû à une gestion incomplète des collisions de chemins Unicode dans le système `path-reservations`. Sur les systèmes de fichiers insensibles à la casse ou à la normalisation (tels que macOS APFS, sur lequel cela a été testé), la bibliothèque ne parvient pas à verrouiller les chemins en collision (par exemple, `ß` et `ss`), ce qui permet de les traiter en parallèle. Cela contourne les protections internes de concurrence de la bibliothèque et permet des attaques d'Empoisonnement par lien symbolique (Symlink Poisoning) via des courses. La bibliothèque utilise un système `PathReservations` pour garantir que les vérifications de métadonnées et les opérations sur les fichiers d'un même chemin sont sérialisées. Cela empêche les courses où une entrée pourrait en écraser une autre simultanément. Il s'agit d'une course qui permet l'écrasement arbitraire de fichiers. Cette vulnérabilité affecte les utilisateurs et les systèmes utilisant node-tar sur macOS (APFS/HFS+). En raison de l'utilisation de la normalisation Unicode `NFD` (dans laquelle `ß` et `ss` sont différents), les chemins en conflit ne voient pas leur ordre correctement préservé sur les systèmes de fichiers qui ignorent la normalisation Unicode (par exemple, APFS, où `ß` provoque une collision d'inode avec `ss`). Cela permet à un attaquant de contourner les verrous de parallélisation internes (`PathReservations`) en utilisant des noms de fichiers en conflit dans une archive tar malveillante. Le correctif de la version 7.5.4 met à jour `path-reservations.js` pour utiliser une forme de normalisation qui correspond au comportement du système de fichiers cible (par exemple, `NFKD`), suivie d'abord de `toLocaleLowerCase('en')` puis de `toLocaleUpperCase('en')`. Comme solution de contournement, les utilisateurs qui ne peuvent pas mettre à jour rapidement et qui utilisent programmatiquement `node-tar` pour extraire des données tar arbitraires doivent filtrer toutes les entrées `SymbolicLink` (comme le fait npm) afin de se défendre contre les écritures arbitraires de fichiers via ce problème de collision de noms d'entrées du système de fichiers.
Sources
1Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.