Executive brief
Astro is a popular web framework used to build fast, modern websites. An attacker can bypass middleware-based authentication checks by sending requests with specially crafted double-encoded URLs, gaining unauthorized access to protected admin pages or API endpoints without valid credentials. This is a bypass of the earlier single URL encoding fix, as the current patch only decodes once.
Technical details
The vulnerability is a path normalization bypass (CWE-647) that exploits insufficient URL decoding in Astro's middleware context. Astro internally decodes request paths once using decodeURI() for routing decisions, but the middleware receives context.url.pathname without the same normalization. Attackers can send double-encoded URLs (e.g., /%2561dmin to reach /admin) to bypass pathname-based authentication checks. The attack requires no authentication, privileges, or user interaction and is remotely exploitable over the network. The fix in v5.15.8 for the original CVE-2025-64765 is insufficient because it only decodes once; a more robust solution would detect multi-level encoding and reject such requests with a 400 error.
Affected products
- The Astro Technology Company Astro < 5.15.8
Timeline
- 2025-12-06: disclosed
- 2025-12-08: advisory