Read the docs

Astro: Netlify Image CDN allowlist bypass enables SSRF

Priority LOW 28CWE-625Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
Present
Impact type
—
Confidentiality · integrity · availability
None · None · Low
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.

Summary

Astro is a web framework for content-driven websites. From 5.2.0 until 8.2.4, the @astrojs/netlify adapter generates regular expressions for Netlify Image CDN remote-image allowlists without anchoring them to the beginning of the URL. Because Netlify evaluates these expressions with RegExp.test(), an allowed origin appearing only in a source URL's path or query can satisfy image.domains or image.remotePatterns while the URL's actual host remains attacker-controlled. An unauthenticated request to the public /.netlify/images endpoint can therefore cause the Image CDN to request attacker-selected URLs and may probe or reach internal services. Netlify egress protections may constrain reachable targets, and image transformation limits direct response exfiltration; no confidentiality or integrity impact has been demonstrated. This issue is fixed in version 8.2.4.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.0031 24th percentileScored 2026-11-07
Fix Fixed astro (withastro): 8.2.4netlify (@astrojs): 8.2.4+1 more product

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
withastroastro5.2.0 to before 8.2.48.2.4Patch availableCNA
@astrojsnetlify5.2.0 to before 8.2.48.2.4Patch availableCNA
—@astrojs/netlify (npm)5.2.0 to before 8.2.48.2.4Patch availableGHSA-4233-jc72-56c5
  • astro Vendorwithastro Affected 5.2.0 to before 8.2.4 Fixed in 8.2.4 Patch available CNA
  • netlify Vendor@astrojs Affected 5.2.0 to before 8.2.4 Fixed in 8.2.4 Patch available CNA
  • @astrojs/netlify (npm) Vendor— Affected 5.2.0 to before 8.2.4 Fixed in 8.2.4 Patch available GHSA-4233-jc72-56c5

Remediation

  • Fix · CNA astro (withastro) Fixed in 8.2.4
  • Fix · CNA netlify (@astrojs) Fixed in 8.2.4
  • Fix · GHSA-4233-jc72-56c5 @astrojs/netlify (npm) Fixed in 8.2.4 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-102983
  2. 2026-10-03 Alias added: GHSA-4233-jc72-56c5

References

  • TI-2026-26147 Astro: Unauthenticated Path Override via `x-astro-path` / `x_astro_path` CVSS 3.1CRITICAL 9.1
  • TI-2026-42600 Astro 6.4.7 Authorization Bypass via Decode Iteration Limit and Rewrite Path Canonicalization Mismatch CVSS 3.1HIGH 8.2
  • TI-2024-37142 Server source code is exposed to the public if sourcemaps are enabled CVSS 4.0HIGH 7.8
  • TI-2025-35987 Astro Cloudflare adapter is vulnerable to Server-Side Request Forgery via /_image endpoint CVSS 3.1HIGH 7.2
  • TI-2025-34958 Unauthorized third-party images in Astro’s _image endpoint CVSS 4.0MEDIUM 6.9
  • TI-2026-51542 Astro: Unauthenticated path override in the @astrojs/vercel ISR function CVSS 3.1MEDIUM 6.5
See all 43 →

Sources