@hono/node-server: `serveStatic` decodes the request path a second time, leading to bypass of middleware on static paths
Summary
serveStatic decodes the request path a second time after Hono has already decoded it for routing. A crafted request can be routed as one path and served as another, so middleware mounted on a static prefix does not run for a file under that prefix.
Details
Hono decodes the request path once before routing. serveStatic decoded it again before resolving the file. With a malformed percent-encoded sequence, the first decode leaves part of the path encoded, the router matches the encoded form, and the second decode resolves the real directory. The file is still resolved inside the configured root; this is not a traversal outside it.
Impact
An unauthenticated attacker may reach static files without the middleware on their prefix running, for example an authentication check. This affects applications that mount middleware on part of the directory served by serveStatic. Applications that serve only public files are not affected.
Affected Packages
| Ecosystem | Package | Vulnerable Versions | Patched Version |
|---|---|---|---|
| npm |
@hono/node-server
|
>= 1.19.10, < 2.1.3 |
2.1.3
|
chore(deps-dev): bump @hono/node-server from 2.1.5 to 2.1.8
Open about 6 hours agochore(deps-dev): bump @hono/node-server from 2.1.5 to 2.1.8 in the npm_and_yarn group across 1 directory
Closed about 6 hours agochore(deps): bump @hono/node-server from 2.1.5 to 2.1.8
Open about 7 hours agochore(deps): bump the npm_and_yarn group across 1 directory with 2 updates
Open about 8 hours agobuild(deps): bump @hono/node-server from 1.19.14 to 1.19.19
Open about 16 hours agochore: bump @hono/node-server from 2.1.5 to 2.1.8 in /tools/concord-bridge in the npm_and_yarn group across 1 directory
Open about 20 hours agochore(deps): bump @hono/node-server from 2.1.5 to 2.1.8
Closed about 21 hours agoBump @hono/node-server from 2.1.5 to 2.1.8 in /plugins/easyeda-pro-control
Open about 21 hours agoBump @hono/node-server from 2.1.5 to 2.1.8 in /browser-agent
Open about 21 hours agoBump @hono/node-server from 2.1.5 to 2.1.8
Open about 21 hours agochore(deps): bump @hono/node-server from 2.1.5 to 2.1.8
Closed about 21 hours agobuild(deps): bump @hono/node-server from 2.1.5 to 2.1.8
Open about 21 hours agobuild(deps): bump @hono/node-server from 2.1.5 to 2.1.8
Open about 22 hours agobuild(deps): bump @hono/node-server from 2.1.5 to 2.1.8 in /worker
Open about 22 hours agobuild(deps): bump @hono/node-server from 2.1.5 to 2.1.8 in /mcp/flatwrite-render-server
Open about 22 hours agofix(deps): bump @hono/node-server from 2.1.5 to 2.1.8 in the npm-security group across 1 directory
Open about 22 hours agobuild(deps-dev): bump @hono/node-server from 2.1.5 to 2.1.8
Open about 22 hours agobuild(deps): bump @hono/node-server from 1.19.17 to 1.19.19
Open about 22 hours agochore(web): bump @hono/node-server from 2.1.4 to 2.1.8 in /web
Open about 22 hours agobuild(deps): bump @hono/node-server from 2.1.5 to 2.1.8
Open about 22 hours agochore(deps): bump @hono/node-server from 2.1.3 to 2.1.8 in /packages/mcp
Open about 23 hours agoBump @hono/node-server from 2.1.3 to 2.1.8
Open about 23 hours agobuild(deps): bump @hono/node-server from 2.1.3 to 2.1.8
Closed about 23 hours agoBump @hono/node-server from 2.1.3 to 2.1.8
Open about 23 hours agoBump @hono/node-server from 2.1.5 to 2.1.8 in /eng/common/scripts/eval
Open about 23 hours agoBump @hono/node-server from 2.1.1 to 2.1.8
Open about 23 hours agochore(deps): bump @hono/node-server from 2.1.1 to 2.1.8
Open about 24 hours agochore(deps)(deps): bump @hono/node-server from 1.19.9 to 2.1.6
Open about 24 hours agoBump the npm_and_yarn group across 1 directory with 4 updates
Open 3 days agoBump @hono/node-server from 1.19.18 to 2.1.6 in /deploy/api-gateway
Open 4 days agoBump the npm_and_yarn group across 1 directory with 5 updates
Closed 5 days agodeps(cms)(deps): bump @hono/node-server from 2.1.1 to 2.1.3 in /CMS-V3
Open 5 days agochore(deps): bump @hono/node-server from 2.0.12 to 2.1.6
Open 6 days agochore(deps): bump the npm_and_yarn group across 15 directories with 6 updates
Open 6 days agoBump @hono/node-server from 2.0.12 to 2.1.6
Closed 6 days agobuild(deps): bump @hono/node-server from 2.1.1 to 2.1.6
Open 8 days agonpm(deps): bump the npm_and_yarn group across 1 directory with 5 updates
Closed 9 days agochore(deps-dev): bump @hono/node-server from 1.19.17 to 2.1.6
Closed 9 days agobuild(deps): bump @hono/node-server from 1.19.17 to 2.1.3
Closed 9 days agochore(deps-dev): bump @hono/node-server from 2.1.0 to 2.1.6
Open 10 days agochore(deps): bump @hono/node-server from 2.0.12 to 2.1.6
Open 10 days agobuild(deps): bump @hono/node-server from 2.0.12 to 2.1.6 in /frontend
Open 10 days agochore(deps): bump @hono/node-server from 2.0.11 to 2.1.6
Open 10 days agochore(deps): bump @hono/node-server from 2.1.0 to 2.1.6
Open 10 days agoBump @hono/node-server from 2.1.1 to 2.1.6
Open 10 days agochore(deps): bump @hono/node-server from 2.0.11 to 2.1.6 in /mcp
Open 10 days agochore(deps): bump @hono/node-server from 2.1.0 to 2.1.6
Open 10 days agobuild(deps): bump @hono/node-server from 2.0.12 to 2.1.6 in /frontend
Open 10 days agobuild(deps): bump @hono/node-server from 2.0.12 to 2.1.6
Open 10 days agoBump the npm_and_yarn group across 1 directory with 2 updates
Open 10 days agoActions
Advisory Details
| Published: | October 28, 2026 16 days ago |
| Updated: | November 02, 2026 12 days ago |
| CVSS Score: | 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| EPSS: | 0.35% 29th percentile |
| Source: | Github |
| Classification: | GENERAL |
| UUID: | GSA_kwCzR0hTQS1ybXhtLTNmZzYtcHg0Zs4AB_3U |