fix(deps): patch nanoid security advisory - #362
Conversation
🤖 CodeAnt AI — Review Status
|
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR updates the pnpm workspace override to force the transitive nanoid@^3 dependency to the patched 3.3.18 release and refreshes the lockfile accordingly to resolve a CI-blocking security advisory. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
@CodeAnt-AI review |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 19 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
Comment |
|
CodeAnt AI is running the review. |
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- Consider using a bounded range for the nanoid@^3 override (e.g., ">=3.3.18 <4") rather than a single fixed version to allow future patch updates without needing manual lockstep changes.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider using a bounded range for the nanoid@^3 override (e.g., ">=3.3.18 <4") rather than a single fixed version to allow future patch updates without needing manual lockstep changes.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
PR Summary by QodoForce nanoid@^3 to 3.3.18 to resolve CI-blocking GHSA advisory
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
🏁 CodeAnt Quality Gate ResultsCommit: ✅ Overall Status: PASSEDQuality Gate Details
|
|
CodeAnt AI finished running the review. |
Code Review by Qodo
1.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e1095b153f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…d patch (#364) * release: v1.27.1 — desktop persistence/security stabilization (#363) + nanoid patch Cuts everything unreleased on main since v1.27.0: PR #363 (atomic writes across all Tauri fs-backed stores, fail-closed desktop key routing, factory-reset UI consolidation, packaged-build capability-scope fix, rust-tauri/e2e/vrt promoted to required CI gates) and PR #362 (nanoid security-advisory patch). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(docs): sync AGENTS.md Version field, prevent recurrence in sync-tauri-version.mjs AGENTS.md still declared 1.27.0 after the version bump (qodo-code-review finding on PR #364). Fixes the immediate drift and wires AGENTS.md's Version field plus Cargo.lock's own locked package-version entry into scripts/sync-tauri-version.mjs so future releases can't reintroduce either drift. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
… release-age exception Resolved qs 6.15.2 is vulnerable to GHSA-4mjr-xmp4-gh2g and GHSA-x5fp-wj9c-mxmx (array-limit bypass; isBuffer DoS), dev-only transitive via @lhci/cli, @stryker-mutator/core, and http-server. Fixed in 6.16.0, published 2026-08-29T23:50:15.803Z -- inside this repo's 7-day minimumReleaseAge quarantine at the time of this fix. Admits exactly qs@6.16.0 (not qs broadly, not a range) via minimumReleaseAgeExclude, the same mechanism and precedent already used for nanoid@3.3.18 (PR #362). minimumReleaseAge itself (10080) is unchanged; any future qs release remains governed by the normal quarantine. Compensating verification before admission: registry identity/integrity, no new install-time lifecycle scripts vs 6.15.2, and the one dependency delta (es-define-property, side-channel bump) traced to the same qs maintainer and already present elsewhere in the resolved tree. AUDIT.md's override table documents the qs row and the exception rationale; the exclusion is scheduled for removal once 6.16.0 naturally clears quarantine at 2026-09-05T23:50:15Z UTC.
* fix(deps): bump stale xmldom and fast-uri override floors past newly-published CVEs Both overrides had gone stale in the same way: a floor that no longer excludes the currently-resolved vulnerable version. @xmldom/xmldom: resolved 0.9.10 is within the vulnerable range for GHSA-6gmq-8vp8-gcm6 (XML fragment injection via invalid EntityReference.nodeName), fixed in 0.9.12. Ships via mammoth (.docx export), a production dependency, unlike this repo's other recent stale- floor case. 0.9.12 was published 2026-08-21, well clear of this repo's 7-day minimumReleaseAge quarantine. fast-uri: resolved 3.1.5 is within the vulnerable range for four related 2026-08 advisories (host confusion / SSRF via percent-encoding and IPv6 normalization), fixed in 3.1.6, published 2026-08-23 — also clear of quarantine. Dev-only transitive (stryker, workbox-build), never shipped. pnpm audit --audit-level=high now reports only the two already-documented, unfixable-by-override findings (extract-zip, accepted risk per AUDIT.md; qs, deferred pending its own quarantine clearance ~2026-09-05). Verified with a full production build + smoke:prod (0 CSP violations, wasm ok). * fix(deps): update the fast-uri AUDIT.md row and scope the table's verification date The fast-uri override bump was missing its AUDIT.md Known Overrides Table update (only xmldom's row was updated), contradicting this PR's own test- plan claim. Updates the row to >=3.1.6 with the four superseding advisory IDs. Also scopes the table's blanket "re-verified 2026-06-13" statement, which was inconsistent with the newly-dated xmldom and fast-uri rows. * docs: correct override-floor wording to match the new exact-patched-version pins The Known Overrides Table said floors are "set above the patched version", but the new xmldom (0.9.12) and fast-uri (3.1.6) floors are set exactly AT their first patched version, not above it. Corrects to "set at or above the patched version" for accuracy. * fix(deps): bump qs override floor to 6.16.0, admit via version-scoped release-age exception Resolved qs 6.15.2 is vulnerable to GHSA-4mjr-xmp4-gh2g and GHSA-x5fp-wj9c-mxmx (array-limit bypass; isBuffer DoS), dev-only transitive via @lhci/cli, @stryker-mutator/core, and http-server. Fixed in 6.16.0, published 2026-08-29T23:50:15.803Z -- inside this repo's 7-day minimumReleaseAge quarantine at the time of this fix. Admits exactly qs@6.16.0 (not qs broadly, not a range) via minimumReleaseAgeExclude, the same mechanism and precedent already used for nanoid@3.3.18 (PR #362). minimumReleaseAge itself (10080) is unchanged; any future qs release remains governed by the normal quarantine. Compensating verification before admission: registry identity/integrity, no new install-time lifecycle scripts vs 6.15.2, and the one dependency delta (es-define-property, side-channel bump) traced to the same qs maintainer and already present elsewhere in the resolved tree. AUDIT.md's override table documents the qs row and the exception rationale; the exclusion is scheduled for removal once 6.16.0 naturally clears quarantine at 2026-09-05T23:50:15Z UTC. * fix(deps): drop inline QNBS-v3 comment from pnpm-workspace.yaml exclude entry pnpm-workspace.yaml is pure YAML config; the repo convention explains such overrides in the commit message and AUDIT.md, not with an inline comment on the entry itself. The sibling nanoid@3.3.18 exclude entry it sits beside carries no comment either. The full qs@6.16.0 release-age exception rationale already lives in AUDIT.md's override table and this PR's description; this removes the duplicate inline copy, no information lost. * fix(deps): correct qs advisory ID in pnpm-workspace.yaml comment Verified against the GitHub Advisory Database: GHSA-q8mj-m7cp-5q26 (fixed 6.15.2) is a distinct, already-resolved qs.stringify DoS via null/undefined comma-format array entries with encodeValuesOnly, not the prototype-pollution advisory this override historically tracked, and it was never fixed by the 6.16.0 bump this PR makes. The actual prototype-pollution advisory superseded here is GHSA-hrpp-h998-j3pp / CVE-2022-24999 (fixed 6.10.3) -- AUDIT.md's override table already had this right; this corrects the workspace comment to match. * docs: correct fast-uri's prior-floor claim in AUDIT.md AUDIT.md's fast-uri row said the prior floor was >=3.1.2, but that value was already stale drift from an earlier uncorrected edit -- pnpm-workspace.yaml (the documented source of truth for these floors) actually enforced >=3.1.5 <4 immediately before this PR's bump to >=3.1.6, confirmed via the exact override diff in 896b575. >=3.1.5 is the floor that genuinely no longer excluded the vulnerable 3.1.5 release; corrects the row to say so. * docs: clarify fast-uri floor wording matches at-or-above convention Same precision fix already applied to this table's header sentence (set at or above the patched version): the fast-uri floor equals its first patched release exactly, so fixed 3.1.6 alone doesn't state that later releases are also safe. Says fixed at or above 3.1.6 instead.
User description
Resolves the CI-blocking GHSA-2v37-7h3g-55p8 advisory by forcing the PostCSS transitive nanoid dependency from 3.3.17 to the fixed 3.3.18 release.\n\nValidation: lockfile diff is limited to the nanoid override/package/snapshot references; cloud OSV and full CI are required.
Summary by Sourcery
Update the nanoid v3 workspace override to the patched 3.3.18 release to address the security advisory blocking CI.
Bug Fixes:
Build:
CodeAnt-AI Description
Patch the vulnerable Nano ID dependency used by PostCSS
What Changed
Impact
✅ CI security advisory resolved✅ Reduced vulnerability exposure in PostCSS tooling✅ Consistent patched dependency installs💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.