Condition de concurrence dans les réservations de chemins d'accès node-tar via des collisions de ligatures Unicode sur macOS APFS
Plateforme
nodejs
Composant
tar
Corrigé dans
7.5.4
**TITRE** : Condition de concurrence dans les réservations de chemins d'accès node-tar via des collisions Unicode Sharp-S (ß) sur macOS APFS **AUTEUR** : Tomás Illuminati ### Détails Une vulnérabilité de condition de concurrence existe dans `node-tar` (v7.5.3) en raison 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, dans lequel il 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 de concurrence internes de la bibliothèque et permet des attaques d'empoisonnement de liens symboliques (Symlink Poisoning) via des conditions de concurrence. La bibliothèque utilise un système `PathReservations` pour garantir que les vérifications des métadonnées et les opérations de fichiers pour le même chemin d'accès sont sérialisées. Cela empêche les conditions de concurrence où une entrée pourrait en écraser une autre simultanément. ```typescript // node-tar/src/path-reservations.ts (Lignes 53-62) reserve(paths: string[], fn: Handler) { paths = isWindows ? ['win32 parallelization disabled'] : paths.map(p => { return stripTrailingSlashes( join(normalizeUnicode(p)), // <- LE PROBLÈME POUR MacOS FS ).toLowerCase()
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