The vulnerability is caused by an inconsistent URL decoding between Hono's router and the serveStatic middleware. The router uses a decoding method that preserves encoded slashes (%2F), while the serveStatic middleware was using decodeURIComponent, which decodes %2F into a literal slash (/). This allowed an attacker to bypass authorization middleware attached to a route prefix like /admin/*. A request to /admin%2Fprotected.file would not match the router's rule, skipping the authorization check. However, the serveStatic handler would then decode the path to /admin/protected.file and serve the resource, leading to an authorization bypass. The analysis of the patch commit 6a0607a929d888893f0c91d92dce2fcfdb3662a3 confirms that the serveStatic function in src/middleware/serve-static/index.ts is the source of the vulnerability, as the fix involves replacing decodeURIComponent with tryDecodeURI to align its behavior with the router.