CVE-2026-22031CVE-2026-22031是@fastify/middie插件中的一个高危安全漏洞,CVSS评分8.4。该插件是为Fastify框架添加中间件支持的重要组件。在9.1.0之前的版本中,攻击者可以通过使用URL编码字符绕过中间件路径检查。例如,使用`/%61dmin`代替`/admin`可以让中间件引擎无法匹配编码后的路径,从而跳过中间件执行,但底层Fastify路由器会正确解码路径并匹配对应的路由处理器。这导致攻击者可以在没有中间件约束(如身份验证、授权检查)的情况下访问受保护的端点,绕过安全限制获取敏感数据或执行未授权操作。该漏洞影响所有使用@fastify/middie且依赖路径前缀注册中间件的Fastify应用。
该漏洞源于@fastify/middie中间件引擎与Fastify路由器在路径处理上的不一致性。当开发者使用特定路径前缀注册中间件时(如`fastify.addHook('onRequest', handler, { prefix: '/admin' })`),中间件引擎会对请求路径进行精确匹配。然而,攻击者可以利用URL编码技术发送请求,如将`/admin`编码为`/%61dmin`(其中`%61`是字符'a'的URL编码)。此时中间件引擎因无法识别编码路径而跳过执行,但Fastify的底层路由器会先对路径进行解码,然后匹配对应的路由处理器。这种解码时机差异创造了安全绕过条件。攻击者可通过Burp Suite等工具轻易构造编码请求,绕过身份验证、访问控制等中间件保护,直接访问受保护资源。修复版本9.1.0通过统一路径处理逻辑解决了这一不一致性问题。