{"id":"CVE-2025-24963","aliases":["GHSA-8gvc-j273-4wm5"],"url":"https://o3.security/vulnerability/CVE-2025-24963","summary":"Browser mode serves arbitrary files in vitest","details":"### Summary\n`__screenshot-error` handler on the browser mode HTTP server that responds any file on the file system. Especially if the server is exposed on the network by [`browser.api.host: true`](https://vitest.dev/guide/browser/config.html#browser-api), an attacker can send a request to that handler from remote to get the content of arbitrary files.\n\n### Details\nThis `__screenshot-error` handler on the browser mode HTTP server responds any file on the file system.\nhttps://github.com/vitest-dev/vitest/blob/f17918a79969d27a415f70431e08a9445b051e45/packages/browser/src/node/plugin.ts#L88-L130\n\nThis code was added by https://github.com/vitest-dev/vitest/commit/2d62051f13b4b0939b2f7e94e88006d830dc4d1f.\n\n### PoC\n1. Create a directory and change the current directory to that directory\n1. Run `npx vitest init browser`\n1. Run `npm run test:browser`\n2. Run `curl http://localhost:63315/__screenshot-error?file=/path/to/any/file`\n\n### Impact\nUsers explicitly exposing the browser mode server to the network by [`browser.api.host: true`](https://vitest.dev/guide/browser/config.html#browser-api) may get any files exposed.","published":"2025-02-04T19:36:52.385Z","modified":"2026-10-28T02:30:28.605521390Z","cvss":{"score":5.9,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"},"epss":{"score":0.02337,"percentile":0.82289,"asOf":"2026-08-24"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"@vitest/browser","fixedVersion":"2.1.9"},{"ecosystem":"npm","name":"@vitest/browser","fixedVersion":"3.0.4"}],"fix":{"url":"https://github.com/vitest-dev/vitest/commit/2d62051f13b4b0939b2f7e94e88006d830dc4d1f","label":"vitest-dev/vitest@2d62051"},"references":[{"type":"WEB","url":"https://github.com/vitest-dev/vitest/blob/f17918a79969d27a415f70431e08a9445b051e45/packages/browser/src/node/plugin.ts#L88-L130"},{"type":"WEB","url":"https://vitest.dev/guide/browser/config.html#browser-api"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24963.json"},{"type":"ADVISORY","url":"https://github.com/vitest-dev/vitest/security/advisories/GHSA-8gvc-j273-4wm5"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-24963"},{"type":"FIX","url":"https://github.com/vitest-dev/vitest/commit/2d62051f13b4b0939b2f7e94e88006d830dc4d1f"},{"type":"WEB","url":"https://github.com/vitest-dev/vitest/commit/ed9aeba212df04b83ed01810780663ff2cdd0adf"},{"type":"PACKAGE","url":"https://github.com/vitest-dev/vitest"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-28T02:30:28.605521390Z"}}