Description
Astro is a web framework for content-driven websites. Prior to 8.1.2, the Astro Netlify 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. In packages/integrations/netlify/src/index.ts, remotePatternToRegex() escapes dots in hostname values but interpolates literal pathname values without escaping regular expression metacharacters such as ., +, ?, (, and [, so a restrictive pathname such as /img/v1.0/file also matches metacharacter-adjacent paths, including paths that cross a segment. Netlify enforces the generated regular expression directly and Astro's matchPattern() helper does not revalidate the request, allowing optimization of images on an already-allowed host that the declared pathname was intended to exclude. This issue is fixed in version 8.1.2.
Published: 2026-08-12
Score: 3.7 Low
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Astro versions before 8.1.2 generate regular expressions for Netlify image allowlisting from image.metadata.remotePatterns. While dots in hostnames are escaped, pathname literals are inserted into the regex without escaping metacharacters such as ., +, ?, (, and [. This permits a restricted pathname such as /img/v1.0/file to match URLs with adjacent characters, inadvertently allowing Netlify’s Image CDN to optimize images that the original pattern was meant to exclude. The flaw does not alter user data or application code but broadens the set of requests that are automatically processed for performance, potentially leading to unintended bandwidth use and resource consumption.

Affected Systems

The affected product is the Astro web framework’s Netlify adapter, supplied by withastro:astro. Users of any Astro deployment with the Netlify integration on versions older than v8.1.2 are impacted. The issue is tied to the adapter’s handling of image.remotePatterns entries and does not affect other Astro adapters or unrelated services.

Risk and Exploitability

The CVSS score of 3.7 classifies this as a low‑to‑moderate severity flaw; the EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves supplying crafted image URLs that match the broadened regex, such as appending characters adjacent to a defined pathname, thereby forcing Netlify to process and cache images that were not intended for optimization. Because the vulnerability is purely configuration‑based and depends on the presence of remotePatterns entries, the exploitation risk is limited to environments that use the Astro Netlify adapter and expose mutable URLs. Updating to Astro v8.1.2 or later eliminates the issue, as the fixed code properly escapes pathname metacharacters before adding them to the remote_images allowlist.

Generated by OpenCVE AI on August 13, 2026 at 02:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Astro to version 8.1.2 or later, ensuring that image.remotePatterns are fully escaped in the code
  • Review and manually escape any custom pathname values in image.remotePatterns to avoid unintended regex matches
  • Validate the .netlify/v1/config.json remote_images section after deployment to confirm no overly broad regexes remain

Generated by OpenCVE AI on August 13, 2026 at 02:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-hp3v-mfqw-h74c @astrojs/netlify generates an overly-broad Netlify Image CDN allowlist because remotePatterns.pathname metacharacters are not escaped
History

Sat, 15 Aug 2026 01:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 12 Aug 2026 23:15:00 +0000

Type Values Removed Values Added
First Time appeared Withastro
Withastro astro
Vendors & Products Withastro
Withastro astro

Wed, 12 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
Description Astro is a web framework for content-driven websites. Prior to 8.1.2, the Astro Netlify 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. In packages/integrations/netlify/src/index.ts, remotePatternToRegex() escapes dots in hostname values but interpolates literal pathname values without escaping regular expression metacharacters such as ., +, ?, (, and [, so a restrictive pathname such as /img/v1.0/file also matches metacharacter-adjacent paths, including paths that cross a segment. Netlify enforces the generated regular expression directly and Astro's matchPattern() helper does not revalidate the request, allowing optimization of images on an already-allowed host that the declared pathname was intended to exclude. This issue is fixed in version 8.1.2.
Title @astrojs/netlify generates an overly-broad Netlify Image CDN allowlist because remotePatterns.pathname metacharacters are not escaped
Weaknesses CWE-185
References
Metrics cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-13T12:56:00.248Z

Reserved: 2026-08-12T14:32:11.796Z

Link: CVE-2026-73425

cve-icon Vulnrichment

Updated: 2026-08-13T12:55:57.415Z

cve-icon NVD

Status : Received

Published: 2026-08-12T21:17:41.473

Modified: 2026-08-13T13:19:17.640

Link: CVE-2026-73425

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T02:30:12Z

Weaknesses
  • CWE-185

    Incorrect Regular Expression