CVE-2026-25545
High · 8.6CVSS
8.6
EPSS
2.2%
Published
Feb 24, 2026
CISA due date
—
The record
Astro is a web framework. Prior to version 9.5.4, Server-Side Rendered pages that return an error with a prerendered custom error page (eg. `404.astro` or `500.astro`) are vulnerable to SSRF. If the `Host:` header is changed to an attacker's server, it will be fetched on `/500.html` and they can redirect this to any internal URL to read the response body through the first request. An attacker who can access the application without `Host:` header validation (eg. through finding the origin IP behind a proxy, or just by default) can fetch their own server to redirect to any internal IP. With this they can fetch cloud metadata IPs and interact with services in the internal network or localhost. For this to be vulnerable, a common feature needs to be used, with direct access to the server (no proxies). Version 9.5.4 fixes the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | @astrojs/node | 0 | 9.5.4 |
Related vulnerabilities
- GHSA-qq67-mvv5-fw3g Astro has Full-Read SSRF in error rendering via Host: header injection Same vulnerability
- CVE-2026-41322 @astrojs/node allows Astro to deploy your SSR site to Node targets. Also affects @astrojs/node
- GHSA-c57f-mm3j-27q9 Astro: Cache Poisoning due to incorrect error handling when if-match header is malformed Also affects @astrojs/node
- GHSA-3rmj-9m5h-8fpv Astro: Memory exhaustion DoS due to missing request body size limit in Server Islands Also affects @astrojs/node
- CVE-2026-29772 Astro is a web framework. Also affects @astrojs/node
- CVE-2026-27829 Astro is a web framework. Also affects @astrojs/node
- GHSA-jm64-8m5q-4qh8 Astro has memory exhaustion DoS due to missing request body size limit in Server Actions Also affects @astrojs/node
- GHSA-cj9f-h6r6-4cx2 Astro is vulnerable to SSRF due to missing allowlist enforcement in remote image inferSize Also affects @astrojs/node