Skip to main content

Astro CVE-2026-59731

| EUVDEUVD-2026-42341 HIGH
Use of Non-Canonical URL Paths for Authorization Decisions (CWE-647)
2026-07-08 GitHub_M GHSA-vj59-8hwv-xxmv
8.2
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
vuln.today AI
8.2 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Jul 08, 2026 - 18:02 EUVD
Analysis Generated
Jul 08, 2026 - 17:24 vuln.today

DescriptionCVE.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.

More in Astro

View all
CVE-2018-7180 CRITICAL POC
9.8 Feb 17

SQL Injection exists in the Saxum Astro 4.0.14 component for Joomla!. Rated critical severity (CVSS 9.8), this vulnerabi

CVE-2024-56159 HIGH POC
7.8 Dec 19

Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.8), this vulnerability is remotely exp

CVE-2025-64764 HIGH POC
7.1 Nov 19

Astro is a web framework. Rated high severity (CVSS 7.1), this vulnerability is remotely exploitable, no authentication

CVE-2025-55303 MEDIUM POC
6.9 Aug 19

Astro is a web framework for content-driven websites. Rated medium severity (CVSS 6.9), this vulnerability is remotely e

CVE-2025-64525 MEDIUM POC
6.5 Nov 13

Astro is a web framework. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, no authenticatio

CVE-2025-54793 MEDIUM POC
5.5 Aug 08

Astro is a web framework for content-driven websites. Rated medium severity (CVSS 5.5), this vulnerability is remotely e

CVE-2026-73422 MEDIUM POC
5.3 Aug 12

Reflected XSS in Astro's server-side View Transition CSS generator affects all server-rendered or on-demand Astro applic

CVE-2026-41248 CRITICAL
9.1 Apr 24

Authentication/authorization bypass in Clerk's official JavaScript SDKs (@clerk/nextjs, @clerk/nuxt, @clerk/astro, and t

CVE-2026-73425 LOW POC
3.7 Aug 12

Regex metacharacter injection in @astrojs/netlify prior to 8.1.2 causes the Netlify Image CDN allowlist to be broader th

CVE-2023-50249 HIGH
7.5 Dec 20

Sentry-Javascript is official Sentry SDKs for JavaScript. Rated high severity (CVSS 7.5), this vulnerability is remotely

CVE-2026-73424 MEDIUM
6.5 Aug 17

Path override bypass in the @astrojs/vercel ISR entrypoint (versions 10.0.3 through 11.0.2) exposes edge-protected route

CVE-2026-33768 MEDIUM
6.5 Mar 24

The @astrojs/vercel serverless adapter in Astro versions prior to 10.0.2 contains an unauthenticated path traversal vuln

Share

CVE-2026-59731 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy