CVE-2026-33768

Astro: Unauthenticated Path Override via `x-astro-path` / `x_astro_path`

Published Mar 24, 2026 CVSS 3.1 · 6.5 Medium EPSS < 1% KEV · Not listed
Description
Astro is a web framework. Prior to version 10.0.2, the @astrojs/vercel serverless entrypoint reads the x-astro-path header and x_astro_path query parameter to rewrite the internal request path, with no authentication whatsoever. On deployments without Edge Middleware, this lets anyone bypass Vercel's platform-level path restrictions entirely. The override preserves the original HTTP method and body, so this isn't limited to GET. POST, PUT, DELETE all land on the rewritten path. A Firewall rule blocking /admin/* does nothing when the request comes in as POST /api/health?x_astro_path=/admin/delete-user. This issue has been patched in version 10.0.2.

Analysis

AI-generated

Technical impact

Astro's @astrojs/vercel serverless entrypoint, before version 10.0.2, accepts the x-astro-path header and the x_astro_path query parameter to rewrite the internal request path without requiring any authentication. The rewrite keeps the original HTTP method and request body, which allows every method—including POST, PUT, and DELETE—to be directed at arbitrary paths. By crafting a request that targets a protected or administrative endpoint, an attacker can bypass Vercel platform‑level path restrictions and perform unauthorized actions. This flaw is a combination of path manipulation (CWE-441) and missing authorization checks (CWE-862), and can affect confidentiality, integrity, and availability of the application. No code execution capabilities are granted directly through this path override; however, the ability to reach restricted resources may enable further attacks depending on the underlying application logic.

Affected Systems

The vulnerability applies to Astro framework deployments that use the @astrojs/vercel serverless entrypoint with a version older than 10.0.2. It is relevant to sites on the Vercel platform that do not use Edge Middleware, as the path override can divert requests from a public URL to any internal route such as "/admin/*". Clients should verify they are running @astrojs/vercel 10.0.2 or newer and that any edge or firewall rules are correctly configured.

Risk and Exploitability

The CVSS score of 6.5 reflects moderate severity, and the EPSS score of less than 1% indicates that widespread exploitation is unlikely at present. The flaw is not listed in the CISA KEV catalog. An attacker can exploit the issue remotely by sending unauthenticated HTTP requests with the vulnerable header or query parameter; no additional privileges or credentials are required. Once exploited, the attacker can target any protected route, potentially enabling data manipulation or deletion.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade @astrojs/vercel to version 10.0.2 or newer to eliminate the vulnerability.

Generated by OpenCVE AI on March 26, 2026 at 15:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-mr6q-rp88-fx84 Astro: Unauthenticated Path Override via `x-astro-path` / `x_astro_path`
History
Type Values Removed Values Added
First Time appeared Astro
Astro \@astrojs\/vercel
CPEs cpe:2.3:a:astro:\@astrojs\/vercel:*:*:*:*:*:*:*:*
Vendors & Products Astro
Astro \@astrojs\/vercel
Type Values Removed Values Added
First Time appeared Withastro
Withastro astro
Vendors & Products Withastro
Withastro astro
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Astro is a web framework. Prior to version 10.0.2, the @astrojs/vercel serverless entrypoint reads the x-astro-path header and x_astro_path query parameter to rewrite the internal request path, with no authentication whatsoever. On deployments without Edge Middleware, this lets anyone bypass Vercel's platform-level path restrictions entirely. The override preserves the original HTTP method and body, so this isn't limited to GET. POST, PUT, DELETE all land on the rewritten path. A Firewall rule blocking /admin/* does nothing when the request comes in as POST /api/health?x_astro_path=/admin/delete-user. This issue has been patched in version 10.0.2.
Title Astro: Unauthenticated Path Override via `x-astro-path` / `x_astro_path`
Weaknesses CWE-441
CWE-862
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N'}

Weaknesses
  • CWE-441

    Unintended Proxy or Intermediary ('Confused Deputy')

  • CWE-862

    Missing Authorization

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Mar 24, 2026, 6:53 PM
Reserved
Mar 23, 2026, 6:30 PM
Status
Analyzed
Published
Mar 24, 2026, 7:16 PM
Modified
Jun 17, 2026, 10:38 AM