Skip to content

fix(deps): bump nanoid to 3.3.18 (Dependabot #17) - #4739

Merged
CompleteDotTech merged 1 commit into
mainfrom
fix/cave-dip-nanoid-3-3-18
Aug 19, 2026
Merged

fix(deps): bump nanoid to 3.3.18 (Dependabot #17)#4739
CompleteDotTech merged 1 commit into
mainfrom
fix/cave-dip-nanoid-3-3-18

Conversation

@CompleteDotTech

@CompleteDotTech CompleteDotTech commented Aug 19, 2026

Copy link
Copy Markdown
Member

What

Resolves Dependabot alert #17 (High): nanoid 3.3.17 — custom generators can loop indefinitely when size is zero. Patched in 3.3.18.

nanoid is not a direct dependency. pnpm-lock.yaml carried two copies:

  • nanoid@3.3.17 — vulnerable, pulled in transitively by postcss
  • nanoid@5.1.16 — unaffected, untouched

postcss declares a ^3.3.x range, so 3.3.18 is already admissible. A scoped pnpm override ("nanoid@3": "3.3.18") pins the transitive resolution so it lands on the patched release and no future resolution drifts back. The existing overrides are left intact.

Change

File Change
package.json +1 line: "nanoid@3": "3.3.18" added to pnpm.overrides
pnpm-lock.yaml The overrides entry, the nanoid@3.3.173.3.18 package + snapshot entries, and the postcss@8.5.26 snapshot reference

Total: 6 insertions, 4 deletions across 2 files. No unrelated lockfile churn.

Rebased onto current main after the sibling dependency PRs (#4741 postcss, #4742 sharp, #4737 serde_with) landed. That rebase collapsed the second postcss@8.4.31 copy into postcss@8.5.26, so only one postcss snapshot reference remains to update.

Validation

Run from a clean checkout of this branch at 51a5dc9:

  • pnpm install --frozen-lockfile — passes (lockfile consistent with package.json)
  • pnpm lint — passes (design codemod check: 0 files with drift; eslint --max-warnings=0 clean)
  • pnpm typecheck — passes (tsc --noEmit, no errors)
  • pnpm build — passes, including the bundle-budget and standalone-budget postbuild gates
  • grep -n "nanoid" pnpm-lock.yaml — no 3.3.17 anywhere; nanoid@3: 3.3.18 in overrides, nanoid@3.3.18 in packages + snapshots, the postcss snapshot on 3.3.18
  • node -e "require('./node_modules/.pnpm/postcss@8.5.26/node_modules/nanoid/package.json').version"3.3.18 in the installed tree

CI on this head is fully green across all ten jobs, including the required Frontend build (Playwright: 282 passed, 3 skipped).

@CompleteDotTech CompleteDotTech self-assigned this Aug 19, 2026
@CompleteDotTech
CompleteDotTech force-pushed the fix/cave-dip-nanoid-3-3-18 branch from d85a6ef to ac5a2ef Compare August 19, 2026 20:25
nanoid 3.3.17 lets a custom generator loop indefinitely when size is
zero (High). It is not a direct dependency here: postcss@8.4.31 and
postcss@8.5.26 both pull it in, and their ^3.3.x ranges already admit
the patched 3.3.18.

Pin the transitive resolution with a scoped pnpm override
("nanoid@3": "3.3.18") so both postcss copies land on the patched
release and no future resolution can drift back. nanoid@5.1.16 is
unaffected and untouched.

Validated with pnpm install --frozen-lockfile, pnpm lint,
pnpm typecheck, and pnpm build.
@CompleteDotTech
CompleteDotTech force-pushed the fix/cave-dip-nanoid-3-3-18 branch from ac5a2ef to 51a5dc9 Compare August 19, 2026 20:48
@CompleteDotTech
CompleteDotTech marked this pull request as ready for review August 19, 2026 21:22
@CompleteDotTech
CompleteDotTech merged commit f2fcd62 into main Aug 19, 2026
10 checks passed
@CompleteDotTech
CompleteDotTech deleted the fix/cave-dip-nanoid-3-3-18 branch August 19, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant