CVE-2026-39407Hono是一个适用于任何JavaScript运行时的Web应用程序框架。在4.12.12版本之前,其serveStatic组件存在路径处理不一致的漏洞。攻击者可以通过在请求路径中使用重复斜杠(如//)来访问受保护的静态文件。当系统使用基于路由的中间件(例如/admin/*)进行授权控制时,路由器可能无法正确匹配包含重复斜杠的路径,导致授权中间件被跳过。然而,serveStatic功能仍会将这些路径解析为规范化路径并返回文件。这导致授权机制被绕过,敏感信息可能泄露。该漏洞在4.12.12版本中已得到修复。
该漏洞的成因在于Hono框架中路由匹配机制与静态文件服务机制对路径解析的逻辑差异。在受影响版本中,路由器在匹配请求路径时,依赖于精确的模式匹配。如果管理员设置了中间件保护/admin/*路径,路由器期望路径格式严格符合定义。当攻击者构造包含连续斜杠的恶意路径(例如/admin//config.txt)时,路由器可能因路径格式异常而判定其不匹配/admin/*规则,从而导致绑定在该路由上的鉴权中间件未被执行。与此同时,底层的serveStatic模块在处理文件路径时,通常会执行规范化操作,将多重斜杠视为单斜杠或直接解析至文件系统。因此,尽管鉴权中间件被绕过,serveStatic依然能成功定位并读取受保护目录下的静态文件。这一逻辑缺陷使得未经身份验证的攻击者能够直接窃取敏感文件,主要影响数据的机密性。