CVE-2026-23950: CWE-176: Improper Handling of Unicode Encoding in isaacs node-tar
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.
AI Analysis
Technical Summary
The vulnerability in node-tar (up to and including version 7.5.3) stems from a race condition caused by incomplete handling of Unicode path collisions in the path-reservations system. On filesystems like macOS APFS that are case-insensitive or normalization-insensitive, conflicting Unicode paths (e.g., 'ß' and 'ss') are not properly serialized, allowing parallel processing of colliding paths. This bypasses the internal concurrency locks intended to prevent race conditions, enabling symlink poisoning and arbitrary file overwrite attacks. The patch in version 7.5.4 addresses this by changing the normalization form to match the target filesystem's behavior, applying locale-aware case transformations to ensure proper locking. Users extracting untrusted tarballs should filter out symbolic link entries as a temporary mitigation.
Potential Impact
Successful exploitation allows an attacker to bypass concurrency safeguards in node-tar, leading to arbitrary file overwrite and symlink poisoning on affected filesystems. This can result in unauthorized modification of files during archive extraction, potentially compromising system integrity and security. The vulnerability is particularly relevant on macOS filesystems using APFS or HFS+, where Unicode normalization differences cause inode collisions that the library does not handle correctly.
Mitigation Recommendations
An official patch is available in node-tar version 7.5.4 that fixes the Unicode normalization handling to prevent path collisions and race conditions. Users should upgrade to version 7.5.4 or later to fully remediate the vulnerability. For those unable to upgrade immediately, a recommended workaround is to programmatically filter out all symbolic link entries during tarball extraction, as done by npm, to mitigate arbitrary file overwrite risks. No other vendor advisories indicate alternative mitigations or that no action is required.
CVE-2026-23950: CWE-176: Improper Handling of Unicode Encoding in isaacs node-tar
Description
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.
CVSS v3.1
Score 8.8high
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in node-tar (up to and including version 7.5.3) stems from a race condition caused by incomplete handling of Unicode path collisions in the path-reservations system. On filesystems like macOS APFS that are case-insensitive or normalization-insensitive, conflicting Unicode paths (e.g., 'ß' and 'ss') are not properly serialized, allowing parallel processing of colliding paths. This bypasses the internal concurrency locks intended to prevent race conditions, enabling symlink poisoning and arbitrary file overwrite attacks. The patch in version 7.5.4 addresses this by changing the normalization form to match the target filesystem's behavior, applying locale-aware case transformations to ensure proper locking. Users extracting untrusted tarballs should filter out symbolic link entries as a temporary mitigation.
Potential Impact
Successful exploitation allows an attacker to bypass concurrency safeguards in node-tar, leading to arbitrary file overwrite and symlink poisoning on affected filesystems. This can result in unauthorized modification of files during archive extraction, potentially compromising system integrity and security. The vulnerability is particularly relevant on macOS filesystems using APFS or HFS+, where Unicode normalization differences cause inode collisions that the library does not handle correctly.
Mitigation Recommendations
An official patch is available in node-tar version 7.5.4 that fixes the Unicode normalization handling to prevent path collisions and race conditions. Users should upgrade to version 7.5.4 or later to fully remediate the vulnerability. For those unable to upgrade immediately, a recommended workaround is to programmatically filter out all symbolic link entries during tarball extraction, as done by npm, to mitigate arbitrary file overwrite risks. No other vendor advisories indicate alternative mitigations or that no action is required.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-01-19T14:49:06.312Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Vendor Advisory Urls
- [{"url":"https://access.redhat.com/security/cve/CVE-2026-23950","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:18480","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:18868","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:6192","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:2926","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:2144","vendor":"Red Hat"}]
Threat ID: 696ed8794623b1157ce40bb5
Added to database: 01/20/2026, 01:20:57 UTC
Last enriched: 07/15/2026, 08:36:42 UTC
Last updated: 09/10/2026, 19:36:53 UTC
Views: 2294
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.