CVE Details
| CVE ID |
Severity |
Affected Package |
Installed Version |
Fixed Version |
Date Published |
Date of Scan |
| GHSA-w5hq-g745-h8pq |
MEDIUM |
uuid |
9.0.1 |
14.0.0 |
2026-04-22T20:53:24Z |
2026-04-23T10:18:17.995404243Z |
Affected Docker Images
| Image Name |
SHA |
public.ecr.aws/lambda/nodejs:latest |
public.ecr.aws/lambda/nodejs@sha256:122950fdc2219634caab3d16a9b10a48a221f6dae1fe66884288e048cc0cd838 |
public.ecr.aws/lambda/nodejs:24 |
public.ecr.aws/lambda/nodejs@sha256:e441a7e6dabab33fcbfe2ebea872617c67431092ed06a97bdd6bd28299137bd4 |
public.ecr.aws/lambda/nodejs:22 |
public.ecr.aws/lambda/nodejs@sha256:122950fdc2219634caab3d16a9b10a48a221f6dae1fe66884288e048cc0cd838 |
public.ecr.aws/lambda/nodejs:20 |
public.ecr.aws/lambda/nodejs@sha256:e9f534dee517e304b7c0e5c6280a53ae6e451f9cc7d3b553fb60890f6f32952d |
Description
Summary
v3, v5, and v6 accept external output buffers but do not reject out-of-range writes (small buf or large offset).
By contrast, v4, v1, and v7 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
Remediation Steps
- Update the affected package
uuid from version 9.0.1 to 14.0.0.
About this issue
- This issue may not contain all the information about the CVE nor the images it affects.
- This issue will not be updated with new information and the list of affected images may have changed since the creation of this issue.
- For more, visit Lambda Watchdog.
- This issue was created automatically by Lambda Watchdog.
CVE Details
MEDIUMuuid9.0.114.0.02026-04-22T20:53:24Z2026-04-23T10:18:17.995404243ZAffected Docker Images
public.ecr.aws/lambda/nodejs:latestpublic.ecr.aws/lambda/nodejs@sha256:122950fdc2219634caab3d16a9b10a48a221f6dae1fe66884288e048cc0cd838public.ecr.aws/lambda/nodejs:24public.ecr.aws/lambda/nodejs@sha256:e441a7e6dabab33fcbfe2ebea872617c67431092ed06a97bdd6bd28299137bd4public.ecr.aws/lambda/nodejs:22public.ecr.aws/lambda/nodejs@sha256:122950fdc2219634caab3d16a9b10a48a221f6dae1fe66884288e048cc0cd838public.ecr.aws/lambda/nodejs:20public.ecr.aws/lambda/nodejs@sha256:e9f534dee517e304b7c0e5c6280a53ae6e451f9cc7d3b553fb60890f6f32952dDescription
v3,v5, andv6accept external output buffers but do not reject out-of-range writes (smallbufor largeoffset).By contrast,
v4,v1, andv7explicitly throwRangeErroron invalid bounds.This inconsistency allows silent partial writes into caller-provided buffers.
Affected code
src/v35.ts(v3/v5path) writesbuf[offset + i]without bounds validation.src/v6.tswritesbuf[offset + i]without bounds validation.Reproducible PoC
Observed:
v4 THREW RangeErrorv5 NO_THROWv6 NO_THROWExample partial overwrite evidence captured during audit:
Security impact
Suggested fix
Add the same guard used by
v4/v1/v7:Apply to:
src/v35.ts(coversv3andv5)src/v6.tsRemediation Steps
uuidfrom version9.0.1to14.0.0.About this issue