The Wire · Showcase
NEXT.JS PATCHES FIVE SECURITY HOLES OVERNIGHT WHILE VERCEL CLI GAINS AI GATEWAY BUDGET CONTROLS
By RepoJournal · Filed · About Vercel
Five security advisories dropped across Next.js in the last 24 hours, ranging from origin validation on internal redirects to fetch cache key collisions that could leak cached responses between requests.
The Next.js team rolled out fixes for origin header spoofing in custom servers [1], improper encoding of exotic rewrite parameters [2], fetch cache key collisions on Request objects [3], byte-alignment bugs in binary fetch bodies [4], and unvalidated server reference lookups in the client manifest [5]. None of these are trivial. Meanwhile on the CLI side, [email protected] [6] ships new `ai-gateway budgets` commands [7] to set per-team and per-project spend caps, following the same pattern as the `ai-gateway rules` interface. The CLI also hardened its sensitive environment variable handling across all commands that fetch secrets [8], not just `vercel env pull`, so device-code re-auth now works uniformly in `vercel dev`, `vercel build`, `vercel link`, and OIDC flows. On the runtime side, the Workflow SDK now enforces the published per-run event limit [10] and fixes unbounded retries on timed-out steps [11], closing two operational pain points. The Python package [9] shipped a refactor to simplify distribution handling. Vercel Eve fixed an auth challenge advertisement bug [12] so Basic-auth prompts actually appear in browsers, ported the Nuxt integration to stable services routing [13], and overhauled the summarizer input for AI agent compaction to preserve full task context instead of truncating at 280 chars [14]. Chat picked up attachment-only message handling [15], custom token factory forwarding for Teams [16], and a new `chat/workflow` export for durable human-in-the-loop approvals [17].
One email a day. Unsubscribe in one click.
What actually shipped in Vercel, written up every day — commits, pull requests, releases, and security advisories.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Patch Next.js to latest immediately - five security fixes across origin validation, cache keying, and manifest validation vercel/next.js [immediate]
- → Deploy [email protected] to enable AI Gateway budget controls and hardened env var auth across all commands vercel/vercel [plan]
- → If using Workflow SDK, upgrade to pick up event limit enforcement and timeout retry fixes vercel/workflow [plan]
- → Monitor Eve agent compaction costs if running production subagent delegations - summarizer now sees full task context vercel/eve [monitor]
References
- [1] Set correct origin for internal redirects in custom server (#96011) vercel/next.js
- [2] Ensure exotic rewrite param values are properly encoded (#96010) vercel/next.js
- [3] fix(fetch-cache): key fetch(Request, init) by the effective request (#96009) vercel/next.js
- [4] fix(incremental-cache): byte-exact fetch cache key for binary bodies (#96008) vercel/next.js
- [5] Validate server reference IDs during manifest lookup (#96007) vercel/next.js
- [6] [email protected] ↗ vercel/vercel
- [7] feat: add ai-gateway budgets set/list/remove commands ↗ vercel/vercel
- [8] [CLI] adding and fixing the handling of all vc env pull commands ↗ vercel/vercel
- [9] @vercel/[email protected] ↗ vercel/vercel
- [10] Implement `max_events` per run limit ↗ vercel/workflow
- [11] [core] Enforce maxRetries for steps that time out ↗ vercel/workflow
- [12] fix(eve): auth - advertise configured routeAuth challenges ↗ vercel/eve
- [13] fix(eve/nuxt): migrate Vercel production routing to the stable services model ↗ vercel/eve
- [14] fix(eve): eviction-first compaction with full-fidelity summarizer input ↗ vercel/eve
- [15] fix(chat): keep attachment/link-only messages in toAiMessages ↗ vercel/chat
- [16] feat(teams): forward a custom token factory to the Teams SDK ↗ vercel/chat
- [17] feat(chat): durable human-in-the-loop approvals via chat/workflow ↗ vercel/chat