IPBUF安全漏洞报告
English
CVE-2026-9495 CVSS 7.3 高危

CVE-2026-9495 @koa/router 访问控制绕过漏洞

披露日期: 2026-05-26

漏洞信息

漏洞编号
CVE-2026-9495
漏洞类型
访问控制绕过
CVSS评分
7.3 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
@koa/router

相关标签

Access Control BypassNode.jsKoaCVE-2026-9495Middleware

漏洞概述

@koa/router 14.0.0及之前版本存在严重的访问控制绕过漏洞。当路由器的前缀定义中包含路径参数时,挂载的中间件会从执行链中被静默丢弃。攻击者可利用此缺陷绕过身份验证与授权机制,逃避速率限制或输入清洗,从而对系统实施未授权访问或攻击,对应用安全性构成严重威胁。

技术细节

该漏洞的根源在于@koa/router处理带有路径参数的路由前缀时存在逻辑缺陷。具体而言,当开发人员定义一个包含动态路径参数(例如/:userId)的前缀,并尝试在该前缀下挂载中间件(如身份验证或权限校验中间件)时,路由器内部的匹配与继承机制未能正确将中间件链传递给子路由。这导致当用户请求匹配到该前缀下的具体路径时,本应优先执行的中间件被意外跳过。由于系统不会抛出错误提示,这种“静默丢弃”使得安全防护机制形同虚设。攻击者只需构造包含特定参数的恶意URL请求,即可直接访问底层受保护的路由,从而完全绕过身份验证、授权、速率限制等关键安全检查。

攻击链分析

STEP 1
侦察
攻击者识别目标网站使用Node.js及@koa/router组件,并探测是否存在带有路径参数的路由前缀。
STEP 2
分析
确认受影响版本(14.0.0至15.0.0之前),并分析路由结构,寻找挂载了安全中间件但前缀包含参数(如/:id)的路径。
STEP 3
攻击
构造针对受保护子路径的URL请求,利用路径参数触发中间件静默丢弃机制。
STEP 4
绕过
成功绕过身份验证、授权或速率限制检查,直接访问受限资源或执行未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const Koa = require('koa'); const Router = require('@koa/router'); const app = new Koa(); // Vulnerable version: @koa/router >= 14.0.0, < 15.0.0 const secureRouter = new Router({ prefix: '/api/:version' }); // Middleware intended to protect routes (e.g. Auth) secureRouter.use(async (ctx, next) => { console.log('Checking authentication...'); // In a real app, this would verify a token // If verification fails, it should block access here. await next(); }); secureRouter.get('/admin/data', (ctx) => { ctx.body = { secret: 'Sensitive Admin Data' }; }); app.use(secureRouter.routes()); app.listen(3000); // Exploit steps: // 1. Send a GET request to http://localhost:3000/api/v1/admin/data // 2. Observe that 'Checking authentication...' is NOT logged. // 3. The response returns 'Sensitive Admin Data' without passing through the auth middleware.

影响范围

@koa/router >= 14.0.0, < 15.0.0

防御指南

临时缓解措施
在未升级版本中,避免在Router前缀中使用路径参数,或者将安全中间件直接挂载到具体的子路由上,而不是挂载在包含参数的前缀上,以防止中间件被意外跳过。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表