Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify Astro site on Netlify with image allowlist
-
DeliveryCraft source URL embedding allowed origin in path/query
-
ExploitSend unauthenticated request to /.netlify/images
-
ExecutionUnanchored regex accepts attacker host
-
PersistImage CDN fetches internal/attacker target
-
ImpactProbe or reach internal services
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Permissive regular expression
|
| Exploitation Conditions | Exploitable only when the site is built with the @astrojs/netlify adapter (versions 5.2.0 up to 8.2.4) AND configured to use Netlify Image CDN with a remote-image allowlist via image.domains or image.remotePatterns; the vulnerable regexes are generated from those settings. The /.netlify/images endpoint must be publicly reachable (its default state). No authentication or user interaction is required (PR:N/UI:N). Exploitation is LIMITED by Netlify egress protections, which constrain which internal/external targets are actually reachable, and by image-transformation limits, which prevent exfiltrating fetched response bodies - hence AT:P and availability-only impact. |
| Impact | This is a genuine but low-severity SSRF-class flaw (CWE-625, permissive regex). The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L) scores 6.3 and correctly reflects an unauthenticated network-reachable issue with only limited availability impact (VA:L) and NO confidentiality or integrity impact - the description explicitly states 'no confidentiality or integrity impact has been demonstrated.' The AT:P (attack requirements present) captures that Netlify egress protections constrain reachable targets and image-transformation limits prevent direct response exfiltration, so the practical impact is server-side request forgery for internal probing/reachability rather than data theft. No EPSS score, no CISA KEV listing, and no public exploit code are provided in the input, so there is no signal of active or automatable exploitation. The 6.3 'medium' rating is somewhat generous relative to real-world risk: the actual demonstrated impact is limited to causing the Image CDN to fetch attacker-selected URLs, with egress filtering and transformation limits blunting most useful outcomes. Note the 'Information Disclosure' tag overstates impact - the CVE explicitly disclaims confidentiality/integrity impact; the true nature is SSRF/internal-service probing. Priority is low-to-medium: patch as routine hygiene, prioritized only for sites relying on image.domains/image.remotePatterns allowlists as a security boundary. |
| Exploit ScenarioDerived | An attacker sends an unauthenticated request to the public /.netlify/images endpoint on an Astro site deployed via @astrojs/netlify, supplying a source URL like 'http://169.254.169.254/latest/meta-data/?url=https://allowed-origin.example/image.jpg'. Because the generated allowlist regex is not anchored to the start of the URL, the allowed origin appearing only in the query string satisfies RegExp.test(), so the Image CDN fetches the attacker-controlled host and can probe internal services (e.g., cloud metadata endpoints, 127.0.0.1:6379). No public exploit code is identified at time of analysis, though the fixing PR includes explicit regression tests demonstrating the bypass payloads. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Server-side request forgery in the @astrojs/netlify adapter (5.2.0 through 8.2.3) lets unauthenticated remote attackers make the Netlify Image CDN fetch URLs whose host they control, by embedding an allowlisted origin inside the path or query string of a request to the public /.netlify/images endpoint. The impact is limited: Netlify egress protections restrict which internal or external targets are actually reachable and image-transformation handling prevents fetched response bodies from being returned to the attacker, so no confidentiality or integrity impact has been demonstrated and only low availability impact is assessed (CVSS 6.3 per the 4.0 vector; independent assessment CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L). No public exploit code has been identified at time of analysis, and the flaw is fixed in @astrojs/netlify 8.2.4.
RemediationAI
Upgrade to @astrojs/netlify 8.2.4, which anchors the generated allowlist regular expressions at both ends and is the vendor-released patch for this issue (release tag: https://github.com/withastro/astro/releases/tag/@astrojs/netlify@8.2.4; advisory: https://github.com/withastro/astro/security/advisories/GHSA-4233-jc72-56c5; fix commit: e362d4cf540b27730482455c8fc02efe57d16702, PR #17752). If an immediate upgrade is not possible, the effective compensating control is to narrow the trigger: remove or minimize image.domains and image.remotePatterns entries so fewer origins can be matched, or disable Netlify Image CDN remote images entirely (the trade-off is loss of remote image optimization for legitimate hosts). Because the endpoint /.netlify/images is public by default, restrict or block it at the edge for untrusted clients via Netlify redirect/edge rules or access controls, accepting that this also blocks legitimate image transformation requests. Note that the flawed regexes are generated internally by the adapter, so users cannot patch them through configuration alone; only upgrading the adapter fixes the root cause. Monitor Netlify egress logs for outbound requests to internal address ranges (169.254.0.0/16, 127.0.0.0/8, RFC1918 space) as a detection measure for exploitation attempts.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-625 (Permissive Regular Expression) is the root cause. The adapter's remotePatternToRegex() and remoteImagesFromAstroConfig() helpers built pattern strings for Netlify Image CDN remote-image allowlists without a leading '^' anchor (e.g. 'https?:\/\/<allowed-domain>\/.*'). Because Netlify evaluates the allowlist with RegExp.prototype.test(), which succeeds on any substring match, a URL such as 'http://169.254.169.254/latest/meta-data/?url=https://example.net/image.jpg' satisfies the allowlist for 'example.net' even though the request's actual host is the attacker-selected 169.254.169.254. This turns the image-optimization pipeline into an SSRF primitive: the publicly reachable /.netlify/images endpoint forwards the crafted URL to the Image CDN, which then issues an outbound request to the attacker-chosen destination, potentially probing internal services (cloud metadata endpoints, localhost services, etc.). The fix in PR #17752 anchors the generated expressions ('^...$') and adds regression tests confirming that embedded patterns in another URL are rejected. Exploitation requires the site to be built with the adapter AND to configure image.domains or image.remotePatterns; the regexes are derived directly from those user settings, so deployments without a remote-image allowlist are not exposed.
Know when Astro gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Unauthenticated network SSRF (PR:N/AV:N) but AC:H reflects egress/transform constraints; no demonstrated confidentiality or integrity, only limited availability/probing impact (A:L).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
SQL Injection exists in the Saxum Astro 4.0.14 component for Joomla!. Rated critical severity (CVSS 9.8), this vulnerabi
Astro web framework versions prior to 9.5.4 contain a server-side request forgery vulnerability in error page handling t
Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.8), this vulnerability is remotely exp
Server-side request forgery in Astro's built-in image proxy lets unauthenticated remote attackers force the server to fe
Astro is a web framework for content-driven websites. Rated high severity (CVSS 7.2), this vulnerability is remotely exp
Astro is a web framework. Rated high severity (CVSS 7.1), this vulnerability is remotely exploitable, no authentication
Astro is a web framework for content-driven websites. Rated medium severity (CVSS 6.9), this vulnerability is remotely e
Astro is a web framework. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, no authenticatio
Unvalidated reflection of the X-Forwarded-Host header in Astro (versions before 5.14.3) lets remote, unauthenticated att
Astro web framework versions 9.0.0 through 9.5.3 fail to validate remote image domains when the inferSize option is enab
Base-path prefix bypass in Astro prior to 7.2.4 allows unauthenticated remote attackers to reach protected server-side r
Astro is a web framework for content-driven websites. Rated medium severity (CVSS 5.5), this vulnerability is remotely e
EUVD-2026-89969
GHSA-4233-jc72-56c5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB