security: Upgrade @clerk/nextjs to 6.39.2 (GHSA-vqx2-fgx2-5wq9)#97
Conversation
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
…pass Addresses GHSA-vqx2-fgx2-5wq9 (CVSS 9.1): createRouteMatcher could be bypassed via percent-encoded URLs and double-slash path manipulation. Our middleware uses the safe allowlist (isPublicRoute) pattern so we are not actively exploitable, but the underlying createPathMatcher now normalizes paths with decodeURI and slash collapsing — upgrading as recommended by Clerk. Made-with: Cursor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Firetiger deploy monitoring skipped This PR didn't match the auto-monitor filter configured on your GitHub connection:
Reason: PR upgrades a security dependency (@clerk/nextjs) but does not change kernel API endpoints (packages/api/cmd/api/) or Temporal workflows (packages/api/lib/temporal). To monitor this PR anyway, reply with |
masnwilliams
left a comment
There was a problem hiding this comment.
lgtm — reviewed incrementally:
- middleware safety: confirmed allowlist pattern (isPublicRoute early-return + fallthrough to auth.protect()) is not exploitable by GHSA-vqx2-fgx2-5wq9. upgrade is defensive-only.
- CI + socket.yml: standard centralized vuln remediation workflow, minimal permissions, correct bun setup.
- dependency changes: lockfile resolution is correct — cookie deduplication, themes type pinning, no new deps added.
recommend exercising OAuth flows and /mcp auth paths before merge given the transitive version jumps across 5 clerk packages.
Summary
@clerk/nextjsfrom6.32.0to6.39.2and transitively@clerk/sharedfrom3.25.0to3.47.4createRouteMatcherbypass via percent-encoded URLs and double-slash path manipulationRisk assessment
This app uses the safe allowlist pattern (
isPublicRouteearly-return + fallthrough toauth.protect()), which is not actively exploitable per the advisory. Non-public routes always hitawait auth.protect(). See:Upgrading as recommended by Clerk regardless of pattern.
Test plan
/register,/authorize,/token) still work/mcproutes require auth (JWT or API key)Made with Cursor
Note
Medium Risk
Updates a core auth dependency (
@clerk/nextjs) and its transitive packages, which could affect route protection behavior despite being a targeted security bump. Added CI automation is low risk but will create/modify PRs on a schedule.Overview
Security dependency update: Upgrades
@clerk/nextjsfrom6.32.0to6.39.2(and updates transitive Clerk packages like@clerk/backend,@clerk/shared,@clerk/types, pluscookieresolution) viapackage.jsonandbun.lock, to remediate GHSA-vqx2-fgx2-5wq9 affectingcreateRouteMatcher.Automation: Adds a scheduled/manual GitHub Actions workflow (
.github/workflows/vuln-remediation.yml) that reuseskernel/security-workflowsto open dependency remediation PRs (with Bun setup), and addssocket.ymlconfiguration (version: 2).Reviewed by Cursor Bugbot for commit ac024f1. Bugbot is set up for automated code reviews on this repo. Configure here.