Summary
esbuild's development server (versions 0.27.3 up to but not including 0.28.1) allows arbitrary file read on Windows: a crafted request path can escape the served directory and read files elsewhere on disk. It affects the development server only, not production builds, but anyone running `esbuild --serve` on Windows is exposed to any local or networked attacker who can reach the server.
How to fix it
- Upgrade `esbuild` to 0.28.1 or later, which fixes the dev-server path handling.
- Until you upgrade, do not expose the esbuild dev server beyond localhost, and run it only behind a trusted network boundary.
How to avoid it in your code
- Never expose development servers to untrusted networks; bind them to localhost and put them behind a VPN or firewall if remote access is genuinely needed.
- Keep build tooling updated; dev-server file-serving bugs are common and only matter while the server is reachable.
- Treat the development server as untrusted infrastructure, kept separate from anything that holds secrets.
References
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-75859
CodeWhale: Project config `instructions` override enables arbitrary file read into AI system prompt via cloned repository
- MEDIUMGHSA-2223-f22x-24cq
Winter: Local File Inclusion through =include directives in JavaScript asset compilation
- HIGHGHSA-rr55-jp92-8wp2
claude-faf-mcp has an arbitrary local file read/write via unconfined `path` argument in FAF tools
- HIGHGHSA-j4r7-8ph4-43g3
faf-mcp has an arbitrary local file read/write via unconfined `path` argument in FAF tools
- HIGHGHSA-cc2g-gq8c-r332
grok-faf-mcp has an arbitrary local file read via unconfined `path` argument in FAF tools
- HIGHGHSA-3f7w-8rr8-f37f
GitPython: Unguarded git option forwarding in IndexFile.checkout() and TagReference.create() enables arbitrary file overwrite and arbitrary file read