CVE-2026-73424 Overview
CVE-2026-73424 is an authorization bypass vulnerability in the Astro Vercel adapter. The flaw affects packages/integrations/vercel/src/serverless/entrypoint.ts in Astro versions from 10.0.3 until 11.0.3. The adapter accepts the x_astro_path parameter for the public /_isr function based only on the presence of the x-vercel-isr header. Unauthenticated attackers can send GET requests that render routes protected only by Vercel edge path rules or split edge middleware. The vulnerability is tracked under CWE-441: Unintended Proxy or Intermediary.
Critical Impact
Remote unauthenticated attackers can bypass edge-layer authorization controls and access protected server-rendered routes by crafting requests to the /_isr endpoint.
Affected Products
- Astro @astrojs/vercel adapter versions 10.0.3 through 11.0.2
- Astro applications deployed on Vercel using Incremental Static Regeneration (ISR)
- Astro projects relying on Vercel edge path rules or split edge middleware for route protection
Discovery Timeline
- 2026-08-17 - CVE-2026-73424 published to NVD
- 2026-08-18 - Last updated in NVD database
Technical Details for CVE-2026-73424
Vulnerability Analysis
The Astro Vercel adapter exposes an internal ISR (Incremental Static Regeneration) function at /_isr. This endpoint receives the target application path through the x_astro_path query parameter. The entrypoint trusted this parameter based only on the x-vercel-isr header being present. Because both values are attacker-controllable in a direct GET request, an unauthenticated caller can specify any internal route as the ISR target. The adapter then renders that route through the serverless function, sidestepping Vercel edge path rules and split edge middleware that would otherwise enforce authentication or authorization.
Root Cause
The adapter lacked cryptographic verification that the x_astro_path parameter originated from Astro's own build-time route rewrite. Any HTTP client could set the x-vercel-isr header and supply an arbitrary x_astro_path value. This is a classic unintended intermediary flaw [CWE-441] where the serverless entrypoint acted as a confused deputy for the edge layer.
Attack Vector
An attacker sends a crafted GET request directly to the public /_isr function on the target Vercel deployment. The request includes the x-vercel-isr header and a x_astro_path query parameter set to a protected route. The serverless function renders and returns the protected route content, bypassing edge middleware.
// Patch from packages/integrations/vercel/src/index.ts
export const ASTRO_PATH_HEADER = 'x-astro-path';
export const ASTRO_PATH_PARAM = 'x_astro_path';
/**
* ISR functions receive the target path through the `x_astro_path` query
* parameter instead of a header. Because that parameter travels on the URL, it
* is accompanied by this token so the entrypoint can confirm the path override
* came from Astro's own build-time route rewrite rather than from an arbitrary
* caller. The value is the per-build `middlewareSecret`.
*/
export const ASTRO_PATH_TOKEN_PARAM = 'x_astro_path_token';
Source: GitHub Commit 3a43cf0
The fix introduces a x_astro_path_token parameter validated against the per-build middlewareSecret, ensuring the path override came from Astro's own build-time route rewrite.
Detection Methods for CVE-2026-73424
Indicators of Compromise
- Unauthenticated GET requests to the /_isr endpoint with unusual x_astro_path values referencing protected routes
- HTTP requests containing the x-vercel-isr header from unexpected client IP addresses or user agents
- Serverless function invocations logging renders of admin, dashboard, or authenticated-only routes without a preceding edge middleware log entry
- Access log entries for internal application paths that bypass expected authentication redirects
Detection Strategies
- Correlate Vercel edge middleware logs with serverless function invocation logs to find /_isr renders that skipped edge processing
- Alert on external requests to /_isr where the x_astro_path parameter targets routes normally gated by authentication
- Baseline expected ISR invocation patterns from build-time rewrites and flag deviations from those source IPs and headers
Monitoring Recommendations
- Enable Vercel request logging and forward logs to a centralized log platform for retention and correlation
- Track HTTP 200 responses on internal paths (/_isr, /_render) that originate from public client IPs rather than Vercel's internal edge network
- Monitor for spikes in ISR function invocations that do not correspond to configured revalidation schedules
How to Mitigate CVE-2026-73424
Immediate Actions Required
- Upgrade the @astrojs/vercel adapter to version 11.0.3 or later and redeploy affected Astro applications
- Audit Vercel deployment logs for anomalous requests to /_isr containing attacker-controlled x_astro_path values
- Review authentication logic and move critical authorization checks into server-side route handlers rather than relying solely on edge middleware
Patch Information
The issue is fixed in @astrojs/vercel version 11.0.3. The patch introduces the x_astro_path_token parameter validated against the per-build middlewareSecret so the entrypoint can confirm that any path override originated from Astro's own build-time route rewrite. See the GitHub Security Advisory GHSA-x27w-589x-frm2 and the 11.0.3 release notes for details.
Workarounds
- Enforce authentication and authorization inside server route handlers rather than only at the Vercel edge layer
- Restrict access to the /_isr endpoint through Vercel firewall rules until the adapter can be upgraded
- Rotate any shared secrets or session tokens that may have been exposed through unauthorized route rendering
# Upgrade the Astro Vercel adapter to the patched version
npm install @astrojs/vercel@11.0.3
# Verify the installed version
npm ls @astrojs/vercel
# Rebuild and redeploy the Astro application
npm run build
vercel deploy --prod
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

