{"id":"CVE-2026-29087","aliases":["GHSA-wc8c-qw6v-h7f6"],"url":"https://o3.security/vulnerability/CVE-2026-29087","summary":"@hono/node-server: Authorization bypass for protected static paths via encoded slashes in Serve Static Middleware","details":"## Summary\n\nWhen using @hono/node-server's static file serving together with route-based middleware protections (e.g. protecting `/admin/*`), inconsistent URL decoding can allow protected static resources to be accessed without authorization.\n\nIn particular, paths containing encoded slashes (`%2F`) may be evaluated differently by routing/middleware matching versus static file path resolution, enabling a bypass where middleware does not run but the static file is still served.\n\n## Details\n\nThe routing layer and the node-server static handler normalize request paths differently. The router preserves `%2F` as a literal string when matching routes, while the static handler decodes `%2F` into `/` before resolving the filesystem path.\n\nExample request:\n\n- `/admin%2Fsecret.html`\n\nThis may:\n- fail to match middleware intended for `/admin/*`, but\n- still be resolved by the static handler as `/admin/secret.html` under the configured static root.\n\nThis does not allow access outside the configured static root and is not a path traversal vulnerability.\n\n## Impact\n\nAn unauthenticated attacker could bypass route-based authorization protections for protected static resources by supplying paths containing encoded slashes.\n\nApplications relying solely on route-based middleware to protect static subpaths under the same static root may have exposed those resources.","published":"2026-03-06T17:03:30.412Z","modified":"2026-08-12T03:51:11.216144682Z","cvss":{"score":7.5,"severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"},"epss":{"score":0.00327,"percentile":0.25587,"asOf":"2026-08-16"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"npm","name":"@hono/node-server","fixedVersion":"1.19.10"}],"fix":{"url":"https://github.com/honojs/node-server/commit/455015be1697dd89974a68b70350ea7b2d126d2e","label":"honojs/node-server@455015b"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29087.json"},{"type":"ADVISORY","url":"https://github.com/honojs/node-server/security/advisories/GHSA-wc8c-qw6v-h7f6"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-29087"},{"type":"FIX","url":"https://github.com/honojs/node-server/commit/455015be1697dd89974a68b70350ea7b2d126d2e"},{"type":"PACKAGE","url":"https://github.com/honojs/node-server"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:11.216144682Z"}}