Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
Remote, unauthenticated, low-complexity path-normalization bypass reaching protected routes gives high confidentiality and low integrity impact with no availability effect and no scope change.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Astro is a web framework for content-driven websites. Version 6.4.7 performs authorization decisions on a partially decoded pathname after reaching the iterative URL decoder limit, while later rewrite route matching performs an additional decodeURI() operation and can resolve the request to a protected route. This issue is fixed in version 6.4.8.
AnalysisAI
Authorization bypass in the Astro web framework version 6.4.7 lets remote unauthenticated attackers reach protected routes by exploiting an inconsistency between how the framework decodes URL paths for auth decisions versus route matching. Because authorization runs against a path that hit the iterative URL-decoder limit while later rewrite matching applies an extra decodeURI(), a request that appears benign at the auth gate resolves to a guarded route afterward, exposing protected content. No public exploit has been identified at time of analysis, but the fix in 6.4.8 and a published GitHub Security Advisory confirm the flaw.
Technical ContextAI
Astro is a JavaScript/TypeScript web framework for content-driven and server-rendered websites (CPE cpe:2.3:a:withastro:astro), where middleware and route guards commonly enforce access control before a request is dispatched to a page or endpoint. The root cause maps to CWE-647 (Use of Non-Canonical URL Paths for Authorization Decisions): Astro's request pipeline caps the number of iterative percent-decoding passes on the pathname, so authorization evaluates a still-partially-encoded path, but the subsequent rewrite route-matching stage performs an additional decodeURI() pass. This second decode can canonicalize the path into one that matches a protected route the authorization layer never saw, producing a classic parser-differential / path-normalization desync between the security check and the routing logic.
RemediationAI
Vendor-released patch: 6.4.8 - upgrade Astro to 6.4.8 or later (npm install astro@6.4.8) as the primary and complete fix, per the release at https://github.com/withastro/astro/releases/tag/astro@6.4.8 and advisory GHSA-vj59-8hwv-xxmv. If an immediate upgrade is not possible, enforce authorization at a layer that sees the fully canonicalized path - for example, add reverse-proxy or CDN rules that normalize and fully percent-decode the URL before applying access rules, or block requests containing multiply-encoded sequences (e.g. %25 that decodes to a further %-escape) to protected path prefixes; the trade-off is that overly strict encoding filters can break legitimately encoded URLs and must be tested. As a stopgap, move sensitive route protection out of Astro's in-framework matching into an independent backend auth check keyed on the decoded route, accepting the added integration effort. Review the changes in PR https://github.com/withastro/astro/pull/17109 (commit 27c80ea92248993e5fce94b2c26d87d611ab6785) to validate any custom middleware.
SQL Injection exists in the Saxum Astro 4.0.14 component for Joomla!. Rated critical severity (CVSS 9.8), this vulnerabi
Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.8), this vulnerability is remotely exp
Astro is a web framework. Rated high severity (CVSS 7.1), this vulnerability is remotely exploitable, no authentication
Astro is a web framework for content-driven websites. Rated medium severity (CVSS 6.9), this vulnerability is remotely e
Astro is a web framework. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, no authenticatio
Astro is a web framework for content-driven websites. Rated medium severity (CVSS 5.5), this vulnerability is remotely e
Reflected XSS in Astro's server-side View Transition CSS generator affects all server-rendered or on-demand Astro applic
Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t
Regex metacharacter injection in @astrojs/netlify prior to 8.1.2 causes the Netlify Image CDN allowlist to be broader th
Sentry-Javascript is official Sentry SDKs for JavaScript. Rated high severity (CVSS 7.5), this vulnerability is remotely
Path override bypass in the @astrojs/vercel ISR entrypoint (versions 10.0.3 through 11.0.2) exposes edge-protected route
The @astrojs/vercel serverless adapter in Astro versions prior to 10.0.2 contains an unauthenticated path traversal vuln
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42341
GHSA-vj59-8hwv-xxmv