CVE-2026-102983 Astro: Netlify Image CDN allowlist bypass enables SSRF
An unauthenticated attacker can bypass image allowlists to force the Netlify Image CDN to request internal services, potentially exposing internal network details.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-102983?
CVE-2026-102983 is a medium-severity server-side request forgery vulnerability in @astrojs astro, published on 30 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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.
Which versions are affected by CVE-2026-102983?
2 open source packages ship an affected version, including @astrojs/netlify.
| Package | Affected | Fixed in |
|---|---|---|
@astrojs/netlify npm | From 5.2.0 | 8.2.4 |
@astrojs/netlify npm | From 5.2.0 | 8.2.4 |
How do I fix CVE-2026-102983?
Upgrade @astrojs/netlify to 8.2.4 or later.
Upgrade, and send outbound requests through an allow-list that blocks internal addresses. More about Server-side request forgery.
Is CVE-2026-102983 being exploited?
There is no known exploitation of CVE-2026-102983 in the wild and no public exploit code.
Sources
Also known as GHSA-4233-jc72-56c5.