Impact
Astro, a popular web framework, implements a server‑side render (SSR) engine that can display custom error pages. In versions earlier than 9.5.4, when a non‑existent route triggers such a custom error page, the framework uses the Host header supplied by the client to fetch a file named /500.html. If an attacker supplies a Host header that points to an external server, the framework will perform a request to that server just to obtain the error page. By controlling the content served on that external server, the attacker can cause Astro to follow a redirect back into the internal network and read the resulting response body. This chain turns the Host header into a primitive for Server‑Side Request Forgery, enabling access to internal URLs, cloud metadata endpoints, or other services that are normally unreachable from the public internet.
Affected Systems
The vulnerability affects the withastro:astro product in all releases prior to 9.5.4. All users running Astro versions 9.5.3 and earlier on any Node.js environment are potentially exposed.
Risk and Exploitability
The CVSS v3 score of 6.9 reflects a moderate severity, with a low exploitation probability (EPSS < 1%) and no current listing in the CISA KEV catalog. Attackers need the ability to send a request bearing a crafted Host header to the affected application; this could arise via direct access or through a compromised proxy that does not validate the Host header. Once the prerequisite reaches the server, the attacker can read sensitive internal content but no arbitrary code execution is described.
OpenCVE Enrichment
Github GHSA