IPBUF安全漏洞报告
English
CVE-2025-15284 CVSS 3.7 低危

CVE-2025-15284 qs库arrayLimit选项输入验证绕过漏洞

披露日期: 2025-12-29
来源: 7ffcee3d-2c14-4c3e-b844-86c6a321a158

漏洞信息

漏洞编号
CVE-2025-15284
漏洞类型
输入验证绕过
CVSS评分
3.7 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
qs

相关标签

CVE-2025-15284输入验证绕过DoSqsJavaScript数组解析安全漏洞

漏洞概述

CVE-2025-15284是qs库中的一个输入验证漏洞,该漏洞影响qs版本低于6.14.1。qs是一个流行的JavaScript查询字符串解析库。漏洞的根本原因在于arrayLimit选项的实现不一致:arrayLimit只对索引表示法(如a[0]=1&a[1]=2)强制执行数组大小限制,但对括号表示法(如a[]=1&a[]=2)没有进行限制检查。这导致攻击者可以通过构造特殊的查询字符串绕过数组大小限制,潜在导致拒绝服务(DoS)攻击。不过,由于默认的parameterLimit设置为1000,在默认配置下实际风险较低,因为parameterLimit会限制总参数数量。需要注意的是,如果parameterLimit被设置为较高的值,潜在的安全风险会增加。

技术细节

漏洞存在于qs库的lib/parse.js文件中。在解析查询字符串时,代码对两种数组表示法的处理方式不一致:

1. 索引表示法处理(第175行):代码正确检查了index <= options.arrayLimit,在超出限制时跳过处理。

2. 括号表示法处理(第159-162行):代码直接调用utils.combine([], leaf)创建数组,完全没有进行arrayLimit检查。

具体问题代码:
if (root === '[]' && options.parseArrays) {
obj = utils.combine([], leaf); // No arrayLimit check
}

攻击者可以通过设置arrayLimit为较低值(如5),然后使用括号表示法传入超过限制数量的数组元素(如6个),来验证漏洞存在。输出数组长度将为6而非预期的最大5。

攻击链分析

STEP 1
1
攻击者识别目标应用使用qs库进行查询字符串解析
STEP 2
2
攻击者构造恶意查询字符串,使用括号表示法(a[]=value)传入大量数组元素
STEP 3
3
通过设置arrayLimit选项为较低值,测试发现括号表示法绕过了限制检查
STEP 4
4
如果parameterLimit被配置为高值,攻击者可构造大量参数导致内存消耗和DoS
STEP 5
5
在默认配置下(parameterLimit=1000),实际影响有限,因为总参数数量被限制

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const qs = require('qs'); // POC: Demonstrate arrayLimit bypass in bracket notation // Expected: result.a.length should be 5 (max defined by arrayLimit) // Actual: result.a.length is 6 (arrayLimit is bypassed) const result = qs.parse('a[]=1&a[]=2&a[]=3&a[]=4&a[]=5&a[]=6', { arrayLimit: 5 }); console.log('Array length:', result.a.length); // Output: 6 (should be max 5) console.log('Array content:', result.a); // Output: [1,2,3,4,5,6] console.log('Vulnerability confirmed: arrayLimit is bypassed');

影响范围

qs < 6.14.1

防御指南

临时缓解措施
在默认配置下,由于parameterLimit默认值为1000,该漏洞的实际DoS风险可以忽略不计。如果已修改parameterLimit配置,建议将其恢复为默认值或设置为合理的较低值(如100-500)。同时,密切关注qs库的更新,及时应用安全补丁。

参考链接

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