fix(security): update transitive nanoid for CVE-2026-67213 - #1298
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe PR adds a backend test that parses the frontend pnpm lockfile. The test requires Nano ID ChangesNano ID lockfile security
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
PR governance metadata gate update for PR governance metadata gate is ready; all current-head requirements passed. |
RCA
The shared protected
developdependency graph resolvedpostcss@8.5.24 -> nanoid@3.3.16. GitHub Security Scan/Trivy reportsCVE-2026-67213(GHSA-2v37-7h3g-55p8):customAlphabetandcustomRandomcan spin indefinitely when an attacker-controlled size is zero.The exact protected base at branch creation is
5425ce4f55b2cf16b2c82a4fd661c9d0bd0660c7.Root cause and minimal remedy
GitHub's reviewed advisory identifies
3.3.17as the first patched 3.x release. PostCSS's compatible range accepts it, so this PR changes only the transitive lock resolution and adds a fail-closed regression test. It preservespostcss@8.5.24; it does not add a waiver, VEX, ignore, severity reduction, 5.x override, or unrelated package upgrade.TDD evidence
Test-only head
a70b78d662c0c127a1f2b73e6bf18370a7a14882was RED because both lock sections resolvednanoid@3.3.16.Exact GREEN head:
d92f85e8fe0d80708a11516ee0bab0019e180ca4.Local verification on the exact candidate tree:
PYTHONWARNINGS=error DISABLE_BACKGROUND_WORKERS=1 python -m pytest backend/tests/test_frontend_nanoid_security.py -q—1 passedPYTHONWARNINGS=error DISABLE_BACKGROUND_WORKERS=1 python -m pytest backend -q—1694 passed, 33 skippedpython -m ruff check backend/tests/test_frontend_nanoid_security.py— passedcorepack pnpm@11.5.3 --dir frontend install --frozen-lockfile --ignore-scripts— lock and supply-chain policy passedcorepack pnpm@11.5.3 --dir frontend test—49 files / 427 tests passedcorepack pnpm@11.5.3 --dir frontend lint— passedPOSTCSS_WORKERS=1 DISABLE_POSTCSS_WORKERS=true corepack pnpm@11.5.3 --dir frontend build— passedcorepack pnpm@11.5.3 --dir frontend audit --prod --audit-level high— no known vulnerabilitiesgit diff --check— passedLocal Trivy is not installed; the required hosted exact-head Security Scan/Trivy result remains the authority and must pass before merge.
Acceptance
Merge only after current-head CI, Security Scan/Trivy, SAST, container/release governance, and robot-review evidence are complete. No predecessor-head, queued, skipped-required, status-only evidence, waiver, or admin bypass counts as acceptance.
Summary by CodeRabbit