Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-73425

CVE-2026-73425: Astro Path Traversal Vulnerability

CVE-2026-73425 is a path traversal flaw in Astro's Netlify adapter that allows bypassing image path restrictions through regex metacharacters. This post covers the technical details, affected versions, and mitigation steps.

Published:

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.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.