CVE-2026-73425 Overview
CVE-2026-73425 affects the Astro web framework's Netlify adapter, where the remotePatternToRegex() function in packages/integrations/netlify/src/index.ts fails to escape regular expression metacharacters in pathname values. The adapter converts each image.remotePatterns entry into a regular expression written to .netlify/v1/config.json under images.remote_images for Netlify's Image CDN allowlist. Attackers can leverage unescaped metacharacters such as ., +, ?, (, and [ to bypass path restrictions on already-allowed hosts. The issue is fixed in Astro version 8.1.2.
Critical Impact
Attackers can trigger Netlify Image CDN optimization on paths that the declared pathname filter was intended to exclude, causing unintended image processing on allow-listed hosts.
Affected Products
- Astro web framework using the Netlify adapter
- @astrojs/netlify versions prior to 8.1.2
- Deployments relying on image.remotePatterns pathname filters for Netlify Image CDN
Discovery Timeline
- 2026-08-12 - CVE-2026-73425 published to NVD
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-73425
Vulnerability Analysis
The vulnerability resides in the Astro Netlify adapter's translation of image.remotePatterns configuration into regular expressions consumed by Netlify's Image CDN. The remotePatternToRegex() helper escapes dots in hostname values but interpolates literal pathname values directly into the generated pattern. This inconsistent escaping produces regular expressions that match more paths than the developer intended. Netlify enforces the generated regular expression directly, and Astro's matchPattern() helper does not revalidate the incoming request, so no secondary check catches the mismatch. This class of flaw is tracked as CWE-185: Incorrect Regular Expression.
Root Cause
The root cause is missing metacharacter escaping when building a regex from user-supplied pathname strings. A restrictive value such as /img/v1.0/file becomes a regex where . matches any character and other metacharacters retain their special meaning. The resulting expression matches paths that share the literal prefix but also traverse additional characters or segment boundaries.
Attack Vector
An attacker crafts a request to the Netlify Image CDN targeting an already allow-listed remote host. The attacker supplies a pathname that satisfies the loose regex but was not intended by the remotePatterns configuration. Netlify accepts the request against the generated allowlist entry and optimizes the image. The path may cross a segment boundary, enabling access to resources the developer intended to block. Exploitation requires the target Astro site to use the Netlify adapter and rely on pathname filters for security.
See the GitHub Security Advisory GHSA-hp3v-mfqw-h74c for authoritative technical details.
Detection Methods for CVE-2026-73425
Indicators of Compromise
- Entries in .netlify/v1/config.json under images.remote_images containing unescaped metacharacters such as ., +, ?, (, or [ in pathname fields
- Netlify Image CDN requests to allow-listed hosts with paths that do not match the literal pathname declared in astro.config.mjs
- Unexpected /.netlify/images transformation requests targeting resources outside the declared pathname scope
Detection Strategies
- Audit generated .netlify/v1/config.json files and compare images.remote_images regex entries against the original image.remotePatterns configuration for metacharacter drift
- Review web server and Netlify function logs for image optimization requests whose source path contains characters that differ from the intended literal pathname
- Inventory Astro projects and confirm the installed @astrojs/netlify version is 8.1.2 or later
Monitoring Recommendations
- Monitor Netlify Image CDN access logs for anomalous path patterns targeting allow-listed remote hosts
- Track deployment pipelines for @astrojs/netlify package versions and alert on versions below 8.1.2
- Log and review changes to image.remotePatterns configuration in source control
How to Mitigate CVE-2026-73425
Immediate Actions Required
- Upgrade @astrojs/netlify to version 8.1.2 or later across all Astro projects using the Netlify adapter
- Redeploy affected sites so the corrected .netlify/v1/config.json is regenerated with properly escaped regex entries
- Review current image.remotePatterns entries and confirm generated allowlist regexes match intended pathname scope
Patch Information
The fix is available in Astro's @astrojs/netlify package version 8.1.2. The patch ensures remotePatternToRegex() escapes regular expression metacharacters in pathname values before interpolation. Refer to the GitHub Security Advisory GHSA-hp3v-mfqw-h74c for release details.
Workarounds
- Remove pathname-based restrictions from image.remotePatterns and rely solely on hostname allow-listing until the patch is applied
- Restrict allowed remote hosts to trusted origins that do not serve sensitive resources under filtered paths
- Add reverse-proxy or edge rules that reject Netlify Image CDN requests to paths outside the intended pathname scope
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

