Astro
CVE-2025-66202
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify route protected by Astro middleware pathname check
-
DeliverySend request with encoded path variant (/%2561dmin)
-
ExploitRouting resolves to /admin while middleware sees raw path
-
ExecutionMiddleware auth comparison fails to match, redirect skipped
-
ImpactAccess protected route content unauthenticated
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication Use of non-canonical URL paths
|
| Exploitation Conditions | Requires the target to be an Astro SSR application running version <5.15.8 (per vendor data) whose middleware enforces authorization by comparing context.url.pathname against literal route strings (e.g. context.url.pathname === '/admin'), the exact pattern shown in Astro's official authentication documentation. The root cause is that Astro applies decodeURI() to resolve the route for rendering but the middleware reads the un-normalized raw pathname, so encoded path variants reach the page while evading the string equality check. Exploitation is unauthenticated and needs no user interaction. LIMITING FACTORS: static/prerendered sites and apps that do not perform pathname-based auth in middleware are unaffected; apps using framework-native or cookie/token-gated access controls independent of raw pathname matching are not vulnerable; the flaw grants access only to routes guarded by this specific middleware pattern, not arbitrary code execution. |
| Impact | This is a moderate-risk, conditionally-exploitable authentication bypass rather than a broad critical flaw. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N = 6.5 Medium) indicates a network-reachable, low-complexity, unauthenticated attack with limited confidentiality and integrity impact and no availability impact - consistent with gaining access to specific protected routes rather than full system compromise. EPSS is low at 0.31% (22nd percentile), the CVE is NOT on CISA KEV, and no public exploit is flagged in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. Crucially, exploitability is NOT universal: it only applies to Astro SSR applications whose developers implemented path-based authorization in middleware using context.url.pathname comparisons (e.g. the '/admin' pattern shown in Astro's own authentication docs), which tempers the PR:N network-vector signal. NOTE A DATA CONFLICT: the description states 'the original CVE-2025-64765 was fixed in v5.15.8' yet also says the current issue (a bypass of that insufficient fix) 'is fixed in version 5.15.8' and lists 'vulnerable < 5.15.8, fixed in 5.15.8' - this fixed-version labeling is internally contradictory and should be verified against the GHSA-whqg-ppgf-wp8c advisory, as the real fix may be a later patch (5.15.8+). The signals are otherwise consistent: low EPSS + no KEV + limited CVSS impact point to a genuine but non-emergency patch priority for teams running affected Astro middleware auth patterns. |
| Exploit ScenarioDerived | An Astro SSR site protects /admin via middleware that redirects unless context.url.pathname equals '/admin'. An unauthenticated attacker requests a double/alternately URL-encoded variant (e.g. /%2561dmin or /%61%64%6d%69%6e); because Astro's routing layer decodes the path to resolve the /admin page while the middleware reads the still-encoded raw pathname, the equality check fails to match and the auth redirect is skipped, serving the protected admin content. No public exploit is identified at time of analysis, though the GHSA advisory includes a concrete bypass example, and the AV:N/AC:L vector makes the request trivial to craft. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Authentication bypass in Astro framework versions prior to 5.15.8 allows unauthenticated attackers to access protected routes that rely on middleware pathname checks. The flaw stems from a path normalization mismatch: Astro's routing uses decodeURI() on the URL pathname, while middleware receives the raw, un-decoded pathname, enabling encoded path variants (e.g., /%61dmin for /admin) to bypass literal string equality checks. This is a moderate-risk, conditionally-exploitable issue affecting Astro SSR applications that implement pathname-based authorization as shown in Astro's authentication documentation; static sites and apps using other access controls are unaffected. No public exploit identified at time of analysis, and EPSS score is low (0.31%, 22nd percentile).
RemediationAI
Upgrade to Astro 5.15.8 or later, which includes the fix that normalizes URL-encoded paths before middleware execution (commit 6f800813516b07bbe12c666a92937525fddb58ce). If immediate upgrade is not possible, avoid relying on raw pathname string comparisons for authentication; instead, normalize the pathname within middleware (e.g., using decodeURI on context.url.pathname) or use framework-native authentication mechanisms that do not depend on un-normalized path matching. However, such workarounds must be applied carefully as they may not cover all encoding variants. Review the vendor advisories at https://github.com/withastro/astro/security/advisories/GHSA-ggxq-hp9w-j794 and https://github.com/withastro/astro/security/advisories/GHSA-whqg-ppgf-wp8c for additional guidance.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is a path normalization mismatch in Astro's request handling. Astro internally applies decodeURI() to determine which route to render, but middleware accesses context.url.pathname without applying the same normalization (see GHSA-ggxq-hp9w-j794). This discrepancy allows attackers to reach protected routes using encoded path variants that pass routing but fail to match middleware's literal string checks. The CWE-647 weakness class concerns the use of incorrectly formatted data leading to security bypass. The affected component is the Node.js server rendering pipeline (CPE: cpe:2.3:a:astro:astro:*:*:*:*:*:node.js:*:*). A fix commit (6f800813516b07bbe12c666a92937525fddb58ce) introduces a normalized URL helper that decodes the pathname before middleware checks, ensuring encoded paths like /%61dmin are properly decoded to /admin.
Know when Astro gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Remote unauthenticated attacker trivially crafts encoded paths (AV:N/AC:L/PR:N/UI:N); impact limited to accessing specific protected routes, so C:L/I:L and A:N with no scope change.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
Astro is a web framework. Versions 5.15.7 and below have a double URL encoding bypass which allows any unauthenticated attacker to bypass path-based authentication checks in Astro middleware, granting unauthorized access to protected routes. While the original CVE-2025-64765 was fixed in v5.15.8, the fix is insufficient as it only decodes once. By using double-encoded URLs, attackers can still bypass authentication and access any route protected by middleware pathname checks. This issue is fixed in version 5.15.8.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)NVD
SQL Injection exists in the Saxum Astro 4.0.14 component for Joomla!. Rated critical severity (CVSS 9.8), this vulnerabi
Astro web framework versions prior to 9.5.4 contain a server-side request forgery vulnerability in error page handling t
Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.8), this vulnerability is remotely exp
Server-side request forgery in Astro's built-in image proxy lets unauthenticated remote attackers force the server to fe
Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.2), 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
Unvalidated reflection of the X-Forwarded-Host header in Astro (versions before 5.14.3) lets remote, unauthenticated att
Astro web framework versions 9.0.0 through 9.5.3 fail to validate remote image domains when the inferSize option is enab
Base-path prefix bypass in Astro prior to 7.2.4 allows unauthenticated remote attackers to reach protected server-side r
Astro is a web framework for content-driven websites. Rated medium severity (CVSS 5.5), this vulnerability is remotely e
NVD
CVE.org
EPSS
GitHub
Exploit-DB