<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 08:55:50 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-73425</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-73425</link>
      <description>&lt;p&gt;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&amp;#39;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&amp;#39;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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&amp;#39;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&amp;#39;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-73425</guid>
    </item>
    <item>
      <title>GHSA-hp3v-mfqw-h74c — @astrojs/netlify generates an overly-broad Netlify Image CDN allowlist because remotePatterns.pathname metacharacters a…</title>
      <link>https://db.gcve.eu/vuln/ghsa-hp3v-mfqw-h74c</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @astrojs/netlify&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `@astrojs/netlify` adapter converts each `image.remotePatterns` entry into a regular expression that is written to `.netlify/v1/config.json` under `images.remote_images`. Netlify&amp;#39;s Image CDN uses these regexes as the allowlist that decides which remote image URLs it will optimize. `remotePatternToRegex()` escapes `.` in the hostname but interpolates the literal `pathname` into the regex **without escaping regex metacharacters**. As a result, the generated allowlist is broader than the pattern the developer declared, and broader than Astro&amp;#39;s canonical `matchPattern()` helper (which compares non-wildcard pathnames by exact string equality).&lt;/p&gt;
&lt;p&gt;This is a residual of the same bug class addressed in CVE-2026-54300 (PR #17018, commit `1310277d`). That fix corrected wildcard semantics and added a `$` anchor but did not add metacharacter escaping for literal pathnames.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;In `packages/integrations/netlify/src/index.ts`, `remotePatternToRegex()` escapes dots in the hostname:&lt;/p&gt;
&lt;p&gt;```js
regexStr += hostname.replace(/\./g, &amp;#39;\\.&amp;#39;);
```&lt;/p&gt;
&lt;p&gt;but interpolates the pathname unescaped in all three branches, e.g. the exact-match branch:&lt;/p&gt;
&lt;p&gt;```js
regexStr += `(\\${pathname})`;
```&lt;/p&gt;
&lt;p&gt;Any regex metacharacter in the literal path (`.`, `+`, `?`, `(`, `[`, ...) is therefore passed through raw. Because `.` matches any character (including `/`), a restrictive pattern is silently widened.&lt;/p&gt;
&lt;p&gt;The security boundary on Netlify is the generated regex itself — Netlify&amp;#39;s Image CDN enforces it dir…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @astrojs/netlify&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `@astrojs/netlify` adapter converts each `image.remotePatterns` entry into a regular expression that is written to `.netlify/v1/config.json` under `images.remote_images`. Netlify&amp;#39;s Image CDN uses these regexes as the allowlist that decides which remote image URLs it will optimize. `remotePatternToRegex()` escapes `.` in the hostname but interpolates the literal `pathname` into the regex **without escaping regex metacharacters**. As a result, the generated allowlist is broader than the pattern the developer declared, and broader than Astro&amp;#39;s canonical `matchPattern()` helper (which compares non-wildcard pathnames by exact string equality).&lt;/p&gt;
&lt;p&gt;This is a residual of the same bug class addressed in CVE-2026-54300 (PR #17018, commit `1310277d`). That fix corrected wildcard semantics and added a `$` anchor but did not add metacharacter escaping for literal pathnames.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;In `packages/integrations/netlify/src/index.ts`, `remotePatternToRegex()` escapes dots in the hostname:&lt;/p&gt;
&lt;p&gt;```js
regexStr += hostname.replace(/\./g, &amp;#39;\\.&amp;#39;);
```&lt;/p&gt;
&lt;p&gt;but interpolates the pathname unescaped in all three branches, e.g. the exact-match branch:&lt;/p&gt;
&lt;p&gt;```js
regexStr += `(\\${pathname})`;
```&lt;/p&gt;
&lt;p&gt;Any regex metacharacter in the literal path (`.`, `+`, `?`, `(`, `[`, ...) is therefore passed through raw. Because `.` matches any character (including `/`), a restrictive pattern is silently widened.&lt;/p&gt;
&lt;p&gt;The security boundary on Netlify is the generated regex itself — Netlify&amp;#39;s Image CDN enforces it dir…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-hp3v-mfqw-h74c</guid>
    </item>
  </channel>
</rss>
