CVE-2026-23950
node-tar tiene una condición de carrera en las reservas de rutas mediante colisiones de ligaduras Unicode en macOS APFS
- Publicado
- 20 ene 2026
- Actualizado
- 1 sept 2026
- Asignación de CNA
- GitHub_M
- Evidencia observada
- 25 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:LBajo · próximos 30 días
- Percentil
- 17,7 %
- Fecha del modelo
- 21 sept 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
node-tar, un Tar para Node.js, tiene una vulnerabilidad de condición de carrera en versiones hasta la 7.5.3 inclusive. Esto se debe a un manejo incompleto de colisiones de rutas Unicode en el sistema 'path-reservations'. En sistemas de archivos que no distinguen mayúsculas y minúsculas o que no distinguen la normalización (como macOS APFS, en el que ha sido probado), la librería no logra bloquear rutas en colisión (por ejemplo, 'ß' y 'ss'), permitiendo que se procesen en paralelo. Esto elude las salvaguardias internas de concurrencia de la librería y permite ataques de envenenamiento de enlaces simbólicos (Symlink Poisoning) a través de condiciones de carrera. La librería utiliza un sistema 'PathReservations' para asegurar que las comprobaciones de metadatos y las operaciones de archivo para la misma ruta se serialicen. Esto previene condiciones de carrera donde una entrada podría sobrescribir otra concurrentemente. Esta es una Condición de Carrera que permite la Sobreescritura Arbitraria de Archivos (Arbitrary File Overwrite). Esta vulnerabilidad afecta a usuarios y sistemas que utilizan node-tar en macOS (APFS/HFS+). Debido al uso de la normalización Unicode 'NFD' (en la que 'ß' y 'ss' son diferentes), las rutas en conflicto no conservan su orden correctamente en sistemas de archivos que ignoran la normalización Unicode (por ejemplo, APFS (en el que 'ß' causa una colisión de inodos con 'ss')). Esto permite a un atacante eludir bloqueos de paralelización internos ('PathReservations') utilizando nombres de archivo en conflicto dentro de un archivo tar malicioso. El parche en la versión 7.5.4 actualiza 'path-reservations.js' para usar una forma de normalización que coincida con el comportamiento del sistema de archivos de destino (por ejemplo, 'NFKD'), seguido primero de 'toLocaleLowerCase('en')' y luego de 'toLocaleUpperCase('en')'. Como solución alternativa, los usuarios que no pueden actualizar rápidamente, y que están utilizando 'node-tar' programáticamente para extraer datos arbitrarios de tarball deberían filtrar todas las entradas 'SymbolicLink' (como hace npm) para defenderse contra escrituras de archivos arbitrarias a través de este problema de colisión de nombres de entradas del sistema de archivos.
Fuentes
1Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.