CVE-2026-54300: Astro @astrojs/netlify SSRF via improper image pattern conversion

CVE-2026-54300 · Severity: medium · CVSS 5.3 · Published 2026-06-22

The @astrojs/netlify adapter converts Astro's image allowlist rules into Netlify Image CDN configuration, but applies broader matching patterns than intended. This allows public image requests to bypass hostname and path restrictions that developers configured, potentially exposing images from unintended hosts or deeper directory paths. An attacker can request images through the Netlify CDN endpoint that would normally be rejected by Astro's validation.

Technologies: Astro Netlify Adapter, @astrojs/netlify (npm). Vendors: Astro, npm.

Quick answers

Is CVE-2026-54300 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-54300 being exploited in the wild.
How severe is CVE-2026-54300?
Medium severity, with a CVSS score of 5.3, published 22 June 2026.
Which products and versions are affected?
Astro Netlify Adapter < 7.0.13; @astrojs/netlify (npm) < 7.0.13, SEMVER:introduced=0,fixed=7.0.13.
Is there a fix for CVE-2026-54300?
Yes. @astrojs/netlify (npm): upgrade to 7.0.13 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-54300 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-54300?
Check whether you run Astro Netlify Adapter or @astrojs/netlify (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @astrojs/netlify (npm): upgrade to 7.0.13 or later
    npm install @astrojs/netlify@7.0.13

Technical details

The @astrojs/netlify adapter converts Astro's image.remotePatterns into JavaScript regular expressions for Netlify Image CDN's images.remote_images configuration. However, the generated regexes have broader semantics than Astro's canonical matchers: wildcard hostnames like *.example.com are converted to optional subdomain patterns ([a-z0-9-]+\.)?example\.com, which matches the apex host (example.com) that Astro rejects; wildcard paths like /ok/* are generated without end-of-URL anchoring, allowing deeper paths like /ok/a/b to match when only /ok/a should match. An unauthenticated attacker can exploit this by making requests to the /.netlify/images endpoint with crafted URL parameters to fetch images that bypass the intended allowlist. The vulnerability affects @astrojs/netlify versions through 7.0.10; version 7.0.13 and later contain a fix that generates regexes matching Astro's exact hostname and pathname semantics with proper anchoring.

Affected products

  • Astro @astrojs/netlify <=7.0.10

Identifiers

  • CVE-2026-54300
  • GHSA-529g-xq4f-cw38

Timeline

  • 2026-06-16: disclosed
  • 2026-06-16: patched: version 7.0.13

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.