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.
CVSS breakdown
CVSS 3.1
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None
Affected products
- withastro / astro< 10.0.2 – < 10.0.2
References
- VENDOR_ADVISORYhttps://github.com/withastro/astro/security/advisories/GHSA-mr6q-rp88-fx84
- PATCHhttps://github.com/withastro/astro/pull/15959
- PATCHhttps://github.com/withastro/astro/commit/335a204161f5a7293c128db570901d4f8639c6ed
- PATCHhttps://github.com/withastro/astro/releases/tag/%40astrojs%2Fvercel%4010.0.2