Skip to content

fix(deps): Update dependency uuid to v14 [SECURITY] - #387

Merged
kodiakhq[bot] merged 2 commits into
mainfrom
renovate/npm-uuid-vulnerability
May 1, 2026
Merged

kodiakhq[bot] merged 2 commits into
mainfrom
renovate/npm-uuid-vulnerability

Conversation

@cloudquery-ci

@cloudquery-ci cloudquery-ci Bot commented May 1, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
uuid ^13.0.0 → ^14.0.0 age confidence

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

GHSA-w5hq-g745-h8pq

More information

Details

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

Severity

  • CVSS Score: 6.3 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

uuidjs/uuid (uuid)

v14.0.0

Compare Source

Security
  • Fixes GHSA-w5hq-g745-h8pq: v3(), v5(), and v6() did not validate that writes would remain within the bounds of a caller-supplied buffer, allowing out-of-bounds writes when an invalid offset was provided. A RangeError is now thrown if offset < 0 or offset + 16 > buf.length.
⚠ BREAKING CHANGES
  • crypto is now expected to be globally defined (requires node@​20+) (#​935)
  • drop node@​18 support (#​934)
  • upgrade minimum supported TypeScript version to 5.4.3, in keeping with the project's policy of supporting TypeScript versions released within the last two years

v13.0.1

Compare Source

Bug Fixes

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@cloudquery-ci
cloudquery-ci Bot requested a review from a team as a code owner May 1, 2026 03:33
@cloudquery-ci
cloudquery-ci Bot requested review from dcelasun and removed request for a team May 1, 2026 03:33
@erezrokah erezrokah added the automerge Add to automerge PRs once requirements are met label May 1, 2026
@kodiakhq
kodiakhq Bot merged commit 54dc0ab into main May 1, 2026
9 checks passed
@kodiakhq
kodiakhq Bot deleted the renovate/npm-uuid-vulnerability branch May 1, 2026 14:08
kodiakhq Bot pushed a commit that referenced this pull request Oct 22, 2026
🤖 I have created a release *beep* *boop*
---


## [0.1.36](v0.1.35...v0.1.36) (2026-10-22)


### Bug Fixes

* Build with Node.js 24.22.1 ([#445](#445)) ([822401c](822401c))
* **deps:** Update dependency @apache-arrow/esnext-esm to v21.2.0 ([#412](#412)) ([b8937bf](b8937bf))
* **deps:** Update dependency @ava/typescript to v7 ([#384](#384)) ([c8d2ee2](c8d2ee2))
* **deps:** Update dependency @cloudquery/plugin-pb-javascript to ^0.0.42 ([#444](#444)) ([af486b0](af486b0))
* **deps:** Update dependency @grpc/grpc-js to v1.14.4 ([#390](#390)) ([4d03c9f](4d03c9f))
* **deps:** Update dependency @grpc/grpc-js to v1.14.5 ([#434](#434)) ([0b0bc5b](0b0bc5b))
* **deps:** Update dependency @tsconfig/node24 to v24.0.5 ([#423](#423)) ([4ddcff6](4ddcff6))
* **deps:** Update dependency @types/luxon to v3.7.2 ([#400](#400)) ([498f9f6](498f9f6))
* **deps:** Update dependency @types/luxon to v3.7.5 ([#424](#424)) ([7f30128](7f30128))
* **deps:** Update dependency @types/node to v24.13.6 ([#435](#435)) ([b231f28](b231f28))
* **deps:** Update dependency @types/semver to v7.8.0 ([#427](#427)) ([6370887](6370887))
* **deps:** Update dependency @vercel/nft to v1.10.2 ([#404](#404)) ([a7ab2fa](a7ab2fa))
* **deps:** Update dependency @vercel/nft to v1.11.0 ([#428](#428)) ([3998580](3998580))
* **deps:** Update dependency @vercel/nft to v1.5.0 ([#366](#366)) ([2958b00](2958b00))
* **deps:** Update dependency ajv to v8.20.0 ([#392](#392)) ([8bbf4b9](8bbf4b9))
* **deps:** Update dependency ava to v7 ([#369](#369)) ([f00eaa2](f00eaa2))
* **deps:** Update dependency ava to v8 ([#396](#396)) ([ea019d3](ea019d3))
* **deps:** Update dependency dot-prop to v10.2.0 ([#413](#413)) ([50a6995](50a6995))
* **deps:** Update dependency eslint-plugin-unicorn to v64 ([#385](#385)) ([9d9e89b](9d9e89b))
* **deps:** Update dependency eslint-plugin-unicorn to v68 ([#408](#408)) ([3bfe73d](3bfe73d))
* **deps:** Update dependency eslint-plugin-unicorn to v72 ([#418](#418)) ([976beea](976beea))
* **deps:** Update dependency eslint-plugin-unicorn to v73 ([#432](#432)) ([457e256](457e256))
* **deps:** Update dependency eslint-plugin-unicorn to v76 ([#442](#442)) ([f897da1](f897da1))
* **deps:** Update dependency execa to v10 ([#419](#419)) ([d317f2d](d317f2d))
* **deps:** Update dependency execa to v10.0.1 ([#425](#425)) ([79d65f4](79d65f4))
* **deps:** Update dependency p-map to v7.0.6 ([#410](#410)) ([1522165](1522165))
* **deps:** Update dependency p-map to v7.0.8 ([#436](#436)) ([f955e13](f955e13))
* **deps:** Update dependency p-queue to v9.1.2 ([#378](#378)) ([5143bde](5143bde))
* **deps:** Update dependency p-queue to v9.3.0 ([#393](#393)) ([679c384](679c384))
* **deps:** Update dependency p-queue to v9.3.3 ([#411](#411)) ([eaacba0](eaacba0))
* **deps:** Update dependency p-timeout to v7.0.2 ([#437](#437)) ([6ed8272](6ed8272))
* **deps:** Update dependency prettier to v3.8.3 ([#379](#379)) ([746e4eb](746e4eb))
* **deps:** Update dependency prettier to v3.8.4 ([#401](#401)) ([b1890f1](b1890f1))
* **deps:** Update dependency prettier to v3.9.6 ([#414](#414)) ([362bd12](362bd12))
* **deps:** Update dependency prettier to v3.9.9 ([#438](#438)) ([4ac5ed8](4ac5ed8))
* **deps:** Update dependency semver to v7.8.1 ([#394](#394)) ([f8ee325](f8ee325))
* **deps:** Update dependency semver to v7.8.5 ([#402](#402)) ([36c2021](36c2021))
* **deps:** Update dependency typescript to v6 ([#370](#370)) ([7175c98](7175c98))
* **deps:** Update dependency typescript to v6.0.3 ([#380](#380)) ([924eb88](924eb88))
* **deps:** Update dependency uuid to v14 [SECURITY] ([#387](#387)) ([54dc0ab](54dc0ab))
* **deps:** Update dependency uuid to v14.0.1 ([#403](#403)) ([4a3ac8f](4a3ac8f))
* **deps:** Update dependency uuid to v14.0.2 ([#426](#426)) ([96bff8d](96bff8d))
* **deps:** Update dependency yargs to v18.1.0 ([#429](#429)) ([2ec99a7](2ec99a7))
* **deps:** Update dependency yargs to v18.2.0 ([#439](#439)) ([a05eff6](a05eff6))
* **deps:** Update eslint packages ([#382](#382)) ([452ae6f](452ae6f))
* **deps:** Update eslint packages ([#395](#395)) ([44df4eb](44df4eb))
* **deps:** Update eslint packages ([#397](#397)) ([650cedc](650cedc))
* **deps:** Update eslint packages ([#405](#405)) ([d9bab3e](d9bab3e))
* **deps:** Update eslint packages ([#415](#415)) ([eeb4e9a](eeb4e9a))
* **deps:** Update eslint packages ([#430](#430)) ([92a2b89](92a2b89))
* **deps:** Update eslint packages ([#440](#440)) ([f05b64a](f05b64a))
* **deps:** Update eslint packages (major) ([#371](#371)) ([5b92e00](5b92e00))
* **deps:** Update pnpm to v10.33.0 ([#367](#367)) ([75e5981](75e5981))
* **deps:** Update pnpm to v10.33.2 ([#381](#381)) ([01b4554](01b4554))
* **deps:** Update pnpm to v10.33.4 ([#391](#391)) ([dc15033](dc15033))
* **deps:** Update pnpm to v11 ([#398](#398)) ([ec6c8f1](ec6c8f1))
* **deps:** Update pnpm to v11.17.0 ([#416](#416)) ([6650fe8](6650fe8))
* **deps:** Update pnpm to v11.24.0 ([#431](#431)) ([b85e1cb](b85e1cb))
* **deps:** Update pnpm to v11.27.1 ([#441](#441)) ([8621c23](8621c23))
* **deps:** Update pnpm to v11.9.0 ([#406](#406)) ([335a8dc](335a8dc))
* **deps:** Update pnpm to v12 ([#443](#443)) ([2b6461a](2b6461a))

---
This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge Add to automerge PRs once requirements are met security

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant