Every CVE Search/ Get API key

CVE-2026-41907

uuid: Missing buffer bounds check in `v3`/`v5`/`v6` when `buf` is provided

8.1 HighFix available

uuid is for the creation of RFC9562 (formerly RFC4122) UUIDs. Prior to 14.0.0, v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset). This allows silent partial writes into caller-provided buffers. This vulnerability is fixed in 14.0.0.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.35%Up 0.3 points since Apr 25, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.1

uuid: Missing buffer bounds check in `v3`/`v5`/`v6` when `buf` is provided

uuid is for the creation of RFC9562 (formerly RFC4122) UUIDs. Prior to 14.0.0, v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset). This allows silent partial writes into caller-provided buffers. This vulnerability is fixed in 14.0.0.

Record
CVE-2026-41907
CVSS 4.0
8.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U
Weakness
CWE-823, CWE-787
Updated
2026-11-02
EUVDEUVD-2026-25600 8.1

uuid is for the creation of RFC9562 (formerly RFC4122) UUIDs. Prior to 14.0.0, v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset). This allows silent partial writes into caller-provided buffers. This vulnerability is fixed in 14.0.0.

Record
EUVD-2026-25600
CVSS 4.0
8.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U
Updated
2026-11-02
GitHub AdvisoriesGHSA-w5hq-g745-h8pq 6.3

uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided

Summary

The v3(), v5(), and v6() API methods (not uuid release versions) accept external output buffers but do not reject out-of-range writes (small buf or large offset).
By contrast, v4(), v1(), and v7() API methods explicitly throw RangeError on invalid bounds.

This inconsistency allows silent partial writes into caller-provided buffers.

Affected code

  • src/v35.ts (v3()/v5() path) writes buf[offset + i] without bounds validation.
  • src/v6.ts writes buf[offset + i] without bounds validation.

Reproducible PoC

cd /home/StrawHat/uuid
npm ci
npm run build

node --input-type=module -e "
import {v4,v5,v6} from './dist-node/index.js';
const ns='6ba7b810-9dad-11d1-80b4-00c04fd430c8';
for (const [name,fn] of [
  ['v4()',()=>v4({},new Uint8Array(8),4)],
  ['v5()',()=>v5('x',ns,new Uint8Array(8),4)],
  ['v6()',()=>v6({},new Uint8Array(8),4)],
]) {
  try { fn(); console.log(name,'NO_THROW'); }
  catch(e){ console.log(name,'THREW',e.name); }
}"

Observed:

  • v4() THREW RangeError
  • v5() NO_THROW
  • v6() NO_THROW

Example partial overwrite evidence captured during audit:

same true buf [
  170, 170, 170, 170,
   75, 224, 100,  63
]
v6 [
  187, 187, 187, 187,
   31,  19, 185,  64
]

Security impact

  • Primary: integrity/robustness issue (silent partial output).
  • If an application assumes full UUID writes into preallocated buffers, this can produce malformed/truncated/partially stale identifiers without error.
  • In systems where caller-controlled offsets/buffer sizes are exposed indirectly, this may become a security-relevant logic flaw.

Suggested fix

Add the same guard used by v4()/v1()/v7():

if (offset < 0 || offset + 16 > buf.length) {
  throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
}

Apply to:

  • src/v35.ts (covers v3() and v5())
  • src/v6.ts
Record
GHSA-w5hq-g745-h8pq
CVSS 4.0
6.3 MediumCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-787, CWE-1285
Updated
2026-11-02
NVD 8.1

uuid is for the creation of RFC9562 (formerly RFC4122) UUIDs. Prior to 14.0.0, v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset). This allows silent partial writes into caller-provided buffers. This vulnerability is fixed in 14.0.0.

Record
CVE-2026-41907
CVSS 4.0
8.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-787, CWE-823
Updated
2026-11-02
OSV 8.1

uuid: Missing buffer bounds check in `v3`/`v5`/`v6` when `buf` is provided

uuid is for the creation of RFC9562 (formerly RFC4122) UUIDs. Prior to 14.0.0, v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset). This allows silent partial writes into caller-provided buffers. This vulnerability is fixed in 14.0.0.

Record
CVE-2026-41907
CVSS 4.0
8.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U
Weakness
CWE-787, CWE-823
Updated
2026-11-02
OSVCVE-2026-41988 3.2

uuid before 14.0.0 can make unexpected writes when external output buffers are used, and the UUID version is 3, 5, or 6. In particular, UUID version 4, which is very commonly used, is unaffected by this issue.

Record
CVE-2026-41988
CVSS 3.1
3.2 LowCVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N
Weakness
CWE-670
Updated
2026-11-02
Show 20 moreShow less
OSVDEBIAN-CVE-2026-41907 7.5

uuid is for the creation of RFC9562 (formerly RFC4122) UUIDs. Prior to 14.0.0, v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset). This allows silent partial writes into caller-provided buffers. This vulnerability is fixed in 14.0.0.

Record
DEBIAN-CVE-2026-41907
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVGHSA-w5hq-g745-h8pq 6.3

uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided

Summary

The v3(), v5(), and v6() API methods (not uuid release versions) accept external output buffers but do not reject out-of-range writes (small buf or large offset).
By contrast, v4(), v1(), and v7() API methods explicitly throw RangeError on invalid bounds.

This inconsistency allows silent partial writes into caller-provided buffers.

Affected code

  • src/v35.ts (v3()/v5() path) writes buf[offset + i] without bounds validation.
  • src/v6.ts writes buf[offset + i] without bounds validation.

Reproducible PoC

cd /home/StrawHat/uuid
npm ci
npm run build

node --input-type=module -e "
import {v4,v5,v6} from './dist-node/index.js';
const ns='6ba7b810-9dad-11d1-80b4-00c04fd430c8';
for (const [name,fn] of [
  ['v4()',()=>v4({},new Uint8Array(8),4)],
  ['v5()',()=>v5('x',ns,new Uint8Array(8),4)],
  ['v6()',()=>v6({},new Uint8Array(8),4)],
]) {
  try { fn(); console.log(name,'NO_THROW'); }
  catch(e){ console.log(name,'THREW',e.name); }
}"

Observed:

  • v4() THREW RangeError
  • v5() NO_THROW
  • v6() NO_THROW

Example partial overwrite evidence captured during audit:

same true buf [
  170, 170, 170, 170,
   75, 224, 100,  63
]
v6 [
  187, 187, 187, 187,
   31,  19, 185,  64
]

Security impact

  • Primary: integrity/robustness issue (silent partial output).
  • If an application assumes full UUID writes into preallocated buffers, this can produce malformed/truncated/partially stale identifiers without error.
  • In systems where caller-controlled offsets/buffer sizes are exposed indirectly, this may become a security-relevant logic flaw.

Suggested fix

Add the same guard used by v4()/v1()/v7():

if (offset < 0 || offset + 16 > buf.length) {
  throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);
}

Apply to:

  • src/v35.ts (covers v3() and v5())
  • src/v6.ts
Record
GHSA-w5hq-g745-h8pq
CVSS 4.0
6.3 MediumCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-1285, CWE-787
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-41907 7.5

CVE-2026-41907 in uuid - Patched by Root

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

Record
ROOT-APP-NPM-CVE-2026-41907
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVUBUNTU-CVE-2026-41907 8.1

uuid is for the creation of RFC9562 (formerly RFC4122) UUIDs. Prior to 14.0.0, v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset). This allows silent partial writes into caller-provided buffers. This vulnerability is fixed in 14.0.0.

Record
UBUNTU-CVE-2026-41907
CVSS 4.0
8.1 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVCLSA-2026-1777509596 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 3.4.0-tuxcare.1.

Record
CLSA-2026-1777509596
Updated
2026-11-02
OSVCLSA-2026-1778805966 No score

TuxCare security update for uuid (2 CVEs)

TuxCare rebuilt uuid to address 2 CVEs. Fixed in 11.0.5-tuxcare.1.

Record
CLSA-2026-1778805966
Updated
2026-11-02
OSVCLSA-2026-1778805967 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 9.0.1-tuxcare.1.

Record
CLSA-2026-1778805967
Updated
2026-11-02
OSVCLSA-2026-1779065185 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 8.3.2-tuxcare.1.

Record
CLSA-2026-1779065185
Updated
2026-11-02
OSVCLSA-2026-1782089806 No score

TuxCare security update for uuid (2 CVEs)

TuxCare rebuilt uuid to address 2 CVEs. Fixed in 9.0.1-tuxcare.2.

Record
CLSA-2026-1782089806
Updated
2026-11-02
OSVCLSA-2026-1782089807 No score

TuxCare security update for uuid (2 CVEs)

TuxCare rebuilt uuid to address 2 CVEs. Fixed in 8.3.2-tuxcare.2.

Record
CLSA-2026-1782089807
Updated
2026-11-02
OSVCLSA-2026-1782089809 No score

TuxCare security update for uuid (2 CVEs)

TuxCare rebuilt uuid to address 2 CVEs. Fixed in 3.4.0-tuxcare.2.

Record
CLSA-2026-1782089809
Updated
2026-11-02
OSVCLSA-2026-1790718582 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 2.0.3-tuxcare.1.

Record
CLSA-2026-1790718582
Updated
2026-11-02
OSVCLSA-2026-1790718709 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 9.0.0-tuxcare.1.

Record
CLSA-2026-1790718709
Updated
2026-11-02
OSVCLSA-2026-1790718939 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 11.0.3-tuxcare.1.

Record
CLSA-2026-1790718939
Updated
2026-11-02
OSVCLSA-2026-1790719328 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 7.0.3-tuxcare.1.

Record
CLSA-2026-1790719328
Updated
2026-11-02
OSVCLSA-2026-1790767270 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 10.0.0-tuxcare.1.

Record
CLSA-2026-1790767270
Updated
2026-11-02
OSVCLSA-2026-1792476235 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 8.0.0-tuxcare.1.

Record
CLSA-2026-1792476235
Updated
2026-11-02
OSVCLSA-2026-1792477444 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 3.3.2-tuxcare.1.

Record
CLSA-2026-1792477444
Updated
2026-11-02
OSVCLSA-2026-1793113739 No score

TuxCare security update for uuid (1 CVE)

TuxCare rebuilt uuid to address 1 CVE. Fixed in 11.1.0-tuxcare.1.

Record
CLSA-2026-1793113739
Updated
2026-11-02
OSVROOT-APP-NPM-GHSA-w5hq-g745-h8pq No score

GHSA-w5hq-g745-h8pq in uuid - Patched by Root

Root has patched GHSA-w5hq-g745-h8pq in the uuid package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-GHSA-w5hq-g745-h8pq
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
uuid
npm
12.0.0 up to 12.0.1
12.0.1
uuid
npm
13.0.0 up to 13.0.1
13.0.1
uuid
npm
before 11.1.1
11.1.1
uuid
TuxCare:npm
3.4.0-tuxcare.0 up to 3.4.0-tuxcare.1, plus listed versions
3.4.0
3.4.0-tuxcare.1
uuid
TuxCare:npm
11.0.5-tuxcare.0 up to 11.0.5-tuxcare.1, plus listed versions
11.0.5
11.0.5-tuxcare.1
uuid
TuxCare:npm
9.0.1-tuxcare.0 up to 9.0.1-tuxcare.1, plus listed versions
9.0.1
9.0.1-tuxcare.1
uuid
TuxCare:npm
8.3.2-tuxcare.0 up to 8.3.2-tuxcare.1, plus listed versions
8.3.2
8.3.2-tuxcare.1
uuid
TuxCare:npm
9.0.1-tuxcare.0 up to 9.0.1-tuxcare.2, plus listed versions
9.0.19.0.1-tuxcare.1
9.0.1-tuxcare.2
uuid
TuxCare:npm
8.3.2-tuxcare.0 up to 8.3.2-tuxcare.2, plus listed versions
8.3.28.3.2-tuxcare.1
8.3.2-tuxcare.2
uuid
TuxCare:npm
3.4.0-tuxcare.0 up to 3.4.0-tuxcare.2, plus listed versions
3.4.03.4.0-tuxcare.1
3.4.0-tuxcare.2
Show 26 moreShow less
Affected packages
PackageAffectedFixed
uuid
TuxCare:npm
2.0.3-tuxcare.0 up to 2.0.3-tuxcare.1, plus listed versions
2.0.3
2.0.3-tuxcare.1
uuid
TuxCare:npm
9.0.0-tuxcare.0 up to 9.0.0-tuxcare.1, plus listed versions
9.0.0
9.0.0-tuxcare.1
uuid
TuxCare:npm
11.0.3-tuxcare.0 up to 11.0.3-tuxcare.1, plus listed versions
11.0.3
11.0.3-tuxcare.1
uuid
TuxCare:npm
7.0.3-tuxcare.0 up to 7.0.3-tuxcare.1, plus listed versions
7.0.3
7.0.3-tuxcare.1
uuid
TuxCare:npm
10.0.0-tuxcare.0 up to 10.0.0-tuxcare.1, plus listed versions
10.0.0
10.0.0-tuxcare.1
uuid
TuxCare:npm
8.0.0-tuxcare.0 up to 8.0.0-tuxcare.1, plus listed versions
8.0.0
8.0.0-tuxcare.1
uuid
TuxCare:npm
3.3.2-tuxcare.0 up to 3.3.2-tuxcare.1, plus listed versions
3.3.2
3.3.2-tuxcare.1
uuid
TuxCare:npm
11.1.0-tuxcare.0 up to 11.1.0-tuxcare.1, plus listed versions
11.1.0
11.1.0-tuxcare.1
node-uuid
Debian:12
All versions, plus listed versions
14.0.0+~11.0.0-114.0.1-114.0.2-114.0.3-114.0.3-2
Show 5 moreShow less
8.3.2+~8.3.3-38.3.2+~8.3.3-48.3.2+~8.3.4-18.3.2+~8.3.4-28.3.2+~8.3.4-3
None known
node-uuid
Debian:13
All versions, plus listed versions
14.0.0+~11.0.0-114.0.1-114.0.2-114.0.3-114.0.3-28.3.2+~8.3.4-18.3.2+~8.3.4-28.3.2+~8.3.4-3
None known
node-uuid
Debian:14
before 14.0.0+~11.0.0-1, plus listed versions
8.3.2+~8.3.4-18.3.2+~8.3.4-28.3.2+~8.3.4-3
14.0.0+~11.0.0-1
uuid
npm
From an advisory covering 2 CVEs
before 11.1.1
11.1.1
uuid
npm
From an advisory covering 2 CVEs
12.0.0 up to 12.0.1
12.0.1
uuid
npm
From an advisory covering 2 CVEs
13.0.0 up to 13.0.1
13.0.1
uuid
Root:npm
before 10.0.0-aikido.3
10.0.0-aikido.311.1.0-aikido.38.3.2-aikido.311.0.3-aikido.38.0.0-aikido.28.3.2-aikido.48.3.2-aikido.511.1.0-aikido.48.0.0-aikido.310.0.0-aikido.49.0.1-aikido.39.0.1-aikido.43.4.0-aikido.19.0.0-aikido.17.0.3-aikido.113.0.0-aikido.311.1.1-aikido.2
@rootio/uuid
Root:npm
before 11.1.0-root.io.1
11.1.0-root.io.111.1.0-root.io.28.3.2-root.io.210.0.0-root.io.29.0.1-root.io.28.0.0-root.io.111.0.3-root.io.210.0.0-root.io.311.1.0-root.io.38.3.2-root.io.311.0.3-root.io.38.0.0-root.io.28.3.2-root.io.48.3.2-root.io.511.1.0-root.io.48.0.0-root.io.310.0.0-root.io.49.0.1-root.io.39.0.1-root.io.43.4.0-root.io.19.0.0-root.io.17.0.3-root.io.113.0.0-root.io.113.0.0-root.io.311.1.1-root.io.2
@rootio/uuid
Root:npm
before 10.0.0-root.io.1
10.0.0-root.io.111.0.3-root.io.19.0.1-root.io.111.1.0-root.io.28.3.2-root.io.18.3.2-root.io.210.0.0-root.io.29.0.1-root.io.28.0.0-root.io.111.0.3-root.io.210.0.0-root.io.311.1.0-root.io.38.3.2-root.io.311.0.3-root.io.38.0.0-root.io.28.3.2-root.io.48.3.2-root.io.511.1.0-root.io.48.0.0-root.io.310.0.0-root.io.49.0.1-root.io.39.0.1-root.io.411.1.1-root.io.2
node-uuid
Ubuntu:14.04:LTS
All versions, plus listed versions
1.3.3-21.4.0-1
None known
node-uuid
Ubuntu:16.04:LTS
All versions, plus listed versions
1.4.0-1
None known
node-uuid
Ubuntu:18.04:LTS
All versions, plus listed versions
1.4.0-11.4.7-5
None known
node-uuid
Ubuntu:20.04:LTS
All versions, plus listed versions
3.3.2-2
None known
node-uuid
Ubuntu:22.04:LTS
All versions, plus listed versions
8.3.2+~8.3.0-48.3.2+~8.3.3-1
None known
node-uuid
Ubuntu:24.04:LTS
All versions, plus listed versions
8.3.2+~8.3.3-4
None known
node-uuid
Ubuntu:25.10
All versions, plus listed versions
8.3.2+~8.3.4-1
None known
node-uuid
Ubuntu:26.10
All versions, plus listed versions
8.3.2+~8.3.4-314.0.0+~11.0.0-114.0.1-1
None known
node-uuid
Ubuntu:26.04:LTS
All versions, plus listed versions
8.3.2+~8.3.4-18.3.2+~8.3.4-3
None known

History

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

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

In short

CVE-2026-41907 is a high vulnerability (CVSS 8.1) in Uuidjs Uuid, published April 22, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.35%, the 28th percentile. Fixed in uuid 12.0.1.

References

Show 12 moreShow less
MoveEnter Open