
Prueba de concepto que demuestra una condición de carrera en el paquete npm tar (v7.5.3) que provoca colisiones de archivos durante la extracción en paralelo, lo que conduce a corrupción o sobrescritura de datos.
Prueba de concepto para CVE-2026-23950 - Vulnerabilidad de condición de carrera en el paquete tar.
Este repositorio demuestra una vulnerabilidad de condición de carrera en el paquete npm tar (versión 7.5.3) que permite la colisión de archivos durante la extracción. La vulnerabilidad explota diferencias en la normalización Unicode donde collision_ss y collision_ß pueden ser tratados como el mismo archivo debido a colisiones que no distinguen entre mayúsculas y minúsculas.
El exploit crea un archivo tar con dos archivos:
collision_ss - que contiene 1000 caracteres 'A'collision_ß - que contiene 1000 caracteres 'B'Cuando se extrae con procesamiento paralelo habilitado (jobs: 8), la condición de carrera puede provocar que estos archivos colisionen, resultando en:
npm install
node index.js
Si la condición de carrera se explota con éxito:
[*] GOODSi la vulnerabilidad no se activa:
[-] No collisionEsta vulnerabilidad podría conducir a:
Actualice a una versión parcheada del paquete tar cuando esté disponible.
Este código es solo para fines educativos y de investigación. No utilice este exploit con fines maliciosos.