fix(security): upgrade nanoid to 5.1.16 (BLO-23043) - #1227
fix(security): upgrade nanoid to 5.1.16 (BLO-23043)#1227allyblockcast[bot] wants to merge 4 commits into
Conversation
Rebuild the approved security remediation independently from current master. Co-Authored-By: Paperclip <noreply@paperclip.ing>
Reject every stable nanoid release affected by GHSA-28wg-ghj8-5hjv, including 4.x and 5.0.x resolutions. Co-Authored-By: Paperclip <noreply@paperclip.ing>
|
🔗 Paperclip issue: BLO-23043 |
1 similar comment
|
🔗 Paperclip issue: BLO-23043 |
|
Hey @allyblockcast[bot]! Before this PR can be reviewed, a few things need attention: Missing or incomplete:
Once updated, push a new commit and these checks will re-run automatically. — commitperclip |
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: 2554967
Critical Issues (0)
Important Issues (1)
- [code, tests, native-codex]
package.json:155— The override is not reflected inpnpm-lock.yaml, which still pins the affected paths tonanoid@5.1.11(pnpm-lock.yaml:8735,pnpm-lock.yaml:8758, andpnpm-lock.yaml:12864). The security remediation is therefore not present in the committed install graph, and the new assertion atsecurity-audit-overrides.test.ts:35fails because the lockfile has nonanoid@5.1.16entry.- Regenerate and commit
pnpm-lock.yamlafter adding the override, ensuring all affected resolutions usenanoid@5.1.16or later, then run the security-audit overrides test.
- Regenerate and commit
Suggestions (0)
Strengths
- The override range correctly excludes the advisory's vulnerable 5.1.x releases.
- The added regression test validates both the configured constraint and the resolved dependency graph.
Recommended Action
- Address the Important issue this cycle before merging.
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: c7b2b3f
Prior Findings Dispositioned (1)
- prior:2554967 important 1 — still-present —
pnpm-lock.yaml:7042— The exact-head lockfile still resolvesnanoid@5.1.11; nonanoid@5.1.16package entry is present.
Critical Issues (0)
Important Issues (1)
- [prior:2554967 important 1; pr-review-toolkit, gstack/review, native-codex]
pnpm-lock.yaml:7042— The committed install graph remains on vulnerablenanoid@5.1.11, despite the new package override. The new test atserver/src/__tests__/security-audit-overrides.test.ts:61requiresnanoid@5.1.16, so it will fail and the security remediation is not delivered.- Regenerate and commit
pnpm-lock.yaml, ensuring affected resolutions usenanoid@5.1.16or later, then run the security-audit overrides test.
- Regenerate and commit
Suggestions (0)
Strengths
- The override range correctly targets the patched nanoid release line.
- The regression assertion checks both the declared override and the resolved lockfile state.
Recommended Action
- Address the Important issue before merge.
There was a problem hiding this comment.
Ally — Consolidated PR Review
Lenses: pr-review-toolkit (code, tests, comments, errors, types) + gstack/review + native-codex.
Reviewed head: 2fed416
Prior Findings Dispositioned (1)
- prior:2554967 important 1 — fixed —
pnpm-lock.yaml:7038— The exact-head lockfile now declaresnanoid@5.1.16, and its consumer snapshots resolve the package atpnpm-lock.yaml:8728,pnpm-lock.yaml:8751,pnpm-lock.yaml:12857, andpnpm-lock.yaml:15503.
Critical Issues (0)
Important Issues (0)
Suggestions (0)
Strengths
- The override and regenerated lockfile consistently resolve the patched
nanoidrelease. - The regression test validates both the declared override and the resolved lockfile graph.
Recommended Action
- Ready to merge from this review's perspective.
|
Superseded by #1228, the independently authored #1228 preserves the remediation while respecting the repository rule that human/agent PRs do not commit |
Thinking Path
Linked Issues or Issue Description
What Changed
nanoid >=5.1.16 <6pnpm override.pnpm-lock.yaml; all affected paths now resolvenanoid@5.1.16.Verification
pnpm 9.15.4 install --lockfile-only --ignore-scripts --no-frozen-lockfilepassed.pnpm 9.15.4 install --frozen-lockfile --ignore-scriptspassed.pnpm --filter @paperclipai/server exec vitest run src/__tests__/security-audit-overrides.test.ts --reporter=verbosepassed: 3 tests.nanoid@5.1.16for affected paths.Risks
Model Used
Checklist