GitHub Advisoryadvisory · npm

GHSA-xf8x-j4p2-f749 Astro allows unauthorized third-party images in _image endpoint

MEDIUM Published 2025-08-19 Modified 2025-11-27 Official page ↗
Aliases
CVE-2025-55303
Ecosystem
npm
Packages
astro, @astrojs/node
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Weaknesses
CWE-79
Reviewed
2025-08-19

Affected packages

• npm astro: >= 5.0.0-alpha.0, < 5.13.2 → fixed in 5.13.2 • npm @astrojs/node: < 9.1.1 → fixed in 9.1.1 • npm astro: < 4.16.19 → fixed in 4.16.19

Description

Summary In affected versions of `astro`, the image optimization endpoint in projects deployed with on-demand rendering allows images from unauthorized third-party domains to be served. Details On-demand rendered sites built with Astro include an `/_image` endpoint which returns optimized versions of images. The `/_image` endpoint is restricted to processing local images bundled with the site and also supports remote images from domains the site developer has manually authorized (using the `image.domains` or `image.remotePatterns` options). However, a bug in impacted versions of `astro` allows an attacker to bypass the third-party domain restrictions by using a protocol-relative URL as the image source, e.g. `/_image?href=//example.com/image.png`. Proof of Concept 1. Create a new minimal Astro project (`[email protected]`). 2. Configure it to use the Node adapter (`@astrojs/[email protected]` — newer versions are not impacted): ```js // astro.config.mjs import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ mode: 'standalone' }), }); ``` 3. Build the site by running `astro build`. 4. Run the server, e.g. with `astro preview`. 5. Append `/_image?href=//placehold.co/600x400` to the preview URL, e.g. 6. The site will serve the image from the unauthorized `placehold.co` origin. Impact Allows a non-authorized third-party to create URLs on an impacted site’s origin that serve unauthorized image content. In the case of SVG images, this could include the risk of cross-site scripting (XSS) if a user followed a link to a maliciously crafted SVG.

Related

Alias · CVE (1)

  • CVE-2025-55303 Astro is a web framework for content-driven websites. vulnerability

Weakness · CWE (1)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness

References