CVE-2026-23950

node-tar,a Tar for Node.js, has a race condition vulnerability in versions up to and including 7.5.3. This is due to an incomplete handling of Unicode path collisions in the `path-reservations` system. On case-insensitive or normalization-insensitive filesystems (such as macOS APFS, In which it has been tested), the library fails to lock colliding paths (e.g., `ß` and `ss`), allowing them to be processed in parallel. This bypasses the library's internal concurrency safeguards and permits Symlink Poisoning attacks via race conditions. The library uses a `PathReservations` system to ensure that metadata checks and file operations for the same path are serialized. This prevents race conditions where one entry might clobber another concurrently. This is a Race Condition which enables Arbitrary File Overwrite. This vulnerability affects users and systems using node-tar on macOS (APFS/HFS+). Because of using `NFD` Unicode normalization (in which `ß` and `ss` are different), conflicting paths do not have their order properly preserved under filesystems that ignore Unicode normalization (e.g., APFS (in which `ß` causes an inode collision with `ss`)). This enables an attacker to circumvent internal parallelization locks (`PathReservations`) using conflicting filenames within a malicious tar archive. The patch in version 7.5.4 updates `path-reservations.js` to use a normalization form that matches the target filesystem's behavior (e.g., `NFKD`), followed by first `toLocaleLowerCase('en')` and then `toLocaleUpperCase('en')`. As a workaround, users who cannot upgrade promptly, and who are programmatically using `node-tar` to extract arbitrary tarball data should filter out all `SymbolicLink` entries (as npm does) to defend against arbitrary file writes via this file system entry name collision issue.
Configurations

Configuration 1 (hide)

cpe:2.3:a:isaacs:tar:*:*:*:*:*:node.js:*:*

History

30 Jun 2026, 03:17

Type Values Removed Values Added
References
  • () https://access.redhat.com/errata/RHSA-2026:18480 -
  • () https://access.redhat.com/errata/RHSA-2026:18868 -
  • () https://access.redhat.com/errata/RHSA-2026:2144 -
  • () https://access.redhat.com/errata/RHSA-2026:2926 -
  • () https://access.redhat.com/errata/RHSA-2026:6192 -
  • () https://access.redhat.com/security/cve/CVE-2026-23950 -
  • () https://bugzilla.redhat.com/show_bug.cgi?id=2431036 -
  • () https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-23950.json -

17 Jun 2026, 10:22

Type Values Removed Values Added
Summary
  • (es) 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.

18 Feb 2026, 15:50

Type Values Removed Values Added
References () https://github.com/isaacs/node-tar/commit/3b1abfae650056edfabcbe0a0df5954d390521e6 - () https://github.com/isaacs/node-tar/commit/3b1abfae650056edfabcbe0a0df5954d390521e6 - Patch
References () https://github.com/isaacs/node-tar/security/advisories/GHSA-r6q2-hw4h-h46w - () https://github.com/isaacs/node-tar/security/advisories/GHSA-r6q2-hw4h-h46w - Exploit, Mitigation, Vendor Advisory
First Time Isaacs tar
Isaacs
CPE cpe:2.3:a:isaacs:tar:*:*:*:*:*:node.js:*:*

20 Jan 2026, 01:15

Type Values Removed Values Added
New CVE

Information

Published : 2026-01-20 01:15

Updated : 2026-07-15 02:18


NVD link : CVE-2026-23950

Mitre link : CVE-2026-23950

CVE.ORG link : CVE-2026-23950


JSON object : View

Products Affected

isaacs

  • tar
CWE
CWE-176

Improper Handling of Unicode Encoding

CWE-352

Cross-Site Request Forgery (CSRF)

CWE-367

Time-of-check Time-of-use (TOCTOU) Race Condition