Record summary

CVE-2026-59731 has a selected CVSS score of 8.2 (high).

Description

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.

Description source: CVE List

Exploitation context

CISA SSVC decision

ExploitationPoC
AutomatableYes
Technical impactPartial

CISA Coordinator · SSVC 2.0.3 · Evaluated Jul 9, 2026 · Source: CVE List

Affected products and versions

2
ProductSourceVersion rangeStatus
CVE List>= 6.4.7, < 6.4.8affected
GitHub Advisory6.4.7 to < 6.4.8 · Fixed in 6.4.8affected

Research & analysis

1
Advisory analysisEclso / withastroSource: EIP research review

Astro 6.4.7 Authorization Bypass via Decode Iteration Limit and Rewrite Path Canonicalization Mismatch

Astro 6.4.7 reintroduces a middleware authorization bypass when a request path is encoded more deeply than the iterative URL decoder's maximum decoding depth of 10 iterations. The decoder returns a partially decoded pathname after reaching the cap, while later route matching performs an additional decodeURI() and resolves the request to a protected route. At encoding depth 11, middleware sees /%61dmin and allows the request, while the router decodes it to /admin and serves protected content. Exploitation requires pathname-based authorization checks in middleware combined with rewrite-based routing (next(context.url)). Fixed in Astro 6.4.8 by rejecting requests when decoding has not stabilized before reaching the iteration cap.

Root causeTechnical detailMitigation
https://github.com/withastro/astro/security/advisories/GHSA-vj59-8hwv-xxmv
Research notes

References

5