An open index of dependabot pull requests across open source projects.

qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion

RSS Feed MODERATE
GHSA-6rw7-vpxm-498p CVE-2025-15284
Description:

Summary

The arrayLimit option in qs did not enforce limits for bracket notation (a[]=1&a[]=2), only for indexed notation (a[0]=1). This is a consistency bug; arrayLimit should apply uniformly across all array notations.

Note: The default parameterLimit of 1000 effectively mitigates the DoS scenario originally described. With default options, bracket notation cannot produce arrays larger than parameterLimit regardless of arrayLimit, because each a[]=value consumes one parameter slot. The severity has been reduced accordingly.

Details

The arrayLimit option only checked limits for indexed notation (a[0]=1&a[1]=2) but did not enforce it for bracket notation (a[]=1&a[]=2).

Vulnerable code (lib/parse.js:159-162):

if (root === '[]' && options.parseArrays) {
    obj = utils.combine([], leaf);  // No arrayLimit check
}

Working code (lib/parse.js:175):

else if (index <= options.arrayLimit) {  // Limit checked here
    obj = [];
    obj[index] = leaf;
}

The bracket notation handler at line 159 uses utils.combine([], leaf) without validating against options.arrayLimit, while indexed notation at line 175 checks index <= options.arrayLimit before creating arrays.

PoC

const qs = require('qs');
const result = qs.parse('a[]=1&a[]=2&a[]=3&a[]=4&a[]=5&a[]=6', { arrayLimit: 5 });
console.log(result.a.length);  // Output: 6 (should be max 5)

Note on parameterLimit interaction: The original advisory's "DoS demonstration" claimed a length of 10,000, but parameterLimit (default: 1000) caps parsing to 1,000 parameters. With default options, the actual output is 1,000, not 10,000.

Impact

Consistency bug in arrayLimit enforcement. With default parameterLimit, the practical DoS risk is negligible since parameterLimit already caps the total number of parsed parameters (and thus array elements from bracket notation). The risk increases only when parameterLimit is explicitly set to a very high value.

Affected Packages
Ecosystem Package Vulnerable Versions Patched Version
npm qs < 6.14.1
6.14.1
Related Dependabot Pull Requests
chore(deps): bump the minor-and-patch group across 1 directory with 25 updates
Open about 9 hours ago
pythonh06719/- #4
npm:vitest npm:@tanstack/react-query +22 more
pythonh06719
chore(deps): bump the production-dependencies group with 6 updates
Open 3 months ago
muhammadt90900-ux/CarsAuto #10
npm:@nestjs/common npm:reflect-metadata +4 more
muhammadt90900-ux
Bump @nestjs/common from 10.2.5 to 10.4.22
Closed 5 months ago
Desside-Developer/auth-nest-project #2
npm:@nestjs/common
Desside-Developer
chore(deps-dev): bump the dev-dependencies group across 1 directory with 3 updates
Open 5 months ago
Emiloart/achievo #45
npm:@types/node npm:ts-jest +1 more
Emiloart
build(deps): bump lexical from 0.34.0 to 0.42.0 in /frontend
Open 5 months ago
fluxturn/fluxturn #86
npm:lexical
fluxturn
npm(deps): bump @lexical/mark from 0.35.0 to 0.42.0
Open 5 months ago
datalayer/vscode-datalayer #342
npm:@lexical/mark
datalayer
npm(deps): bump @lexical/selection from 0.35.0 to 0.42.0
Open 5 months ago
datalayer/vscode-datalayer #340
npm:@lexical/selection
datalayer
chore(deps): bump @nestjs/platform-express from 10.4.20 to 10.4.22
Open 5 months ago
Flipxer-web/flipxer-web-services #186
npm:@nestjs/platform-express
Flipxer-web
Bump the deps group with 18 updates
Closed 6 months ago
AkshajP/block-editor #11
npm:lucide-react npm:eslint +16 more
AkshajP
chore(deps): bump @lexical/list from 0.41.0 to 0.42.0
Closed 6 months ago
oshikiri/planty-wiki #51
npm:@lexical/list
oshikiri
chore(deps): bump @lexical/react from 0.41.0 to 0.42.0
Closed 6 months ago
oshikiri/planty-wiki #50
npm:@lexical/react
oshikiri
deps(deps): bump the dependencies group across 1 directory with 35 updates
Closed 6 months ago
ZRosserMcIntosh/railgun #59
npm:lucide-react npm:@types/node +33 more
ZRosserMcIntosh
chore(deps): bump the weekly-all group across 1 directory with 26 updates
Closed 6 months ago
remdo-project/remdo #265
npm:vitest npm:react-router-dom +24 more
remdo-project
chore(deps): bump @lexical/list from 0.38.2 to 0.42.0 in /web
Open 6 months ago
harmoni-pr-review-benchmark-org/dify__harmoni-engineer__PR9__20260325 #5
npm:@lexical/list
harmoni-pr-review-benchmark-org
chore(deps): bump @lexical/utils from 0.38.2 to 0.42.0 in /web
Open 6 months ago
harmoni-pr-review-benchmark-org/dify__harmoni-engineer__PR7__20260325 #4
npm:@lexical/utils
harmoni-pr-review-benchmark-org
chore: bump @lexical/react from 0.27.2 to 0.42.0
Open 6 months ago
wireapp/wire-webapp #20829
npm:@lexical/react
wireapp
chore: bump lexical from 0.27.2 to 0.42.0 in /apps/webapp
Open 6 months ago
wireapp/wire-webapp #20820
npm:lexical
wireapp
chore(deps): bump lexical from 0.17.0 to 0.42.0
Closed 6 months ago
orieltito/portal-noticias #15
npm:lexical
orieltito
chore(deps): Bump lexical from 0.35.0 to 0.42.0
Closed 6 months ago
OpenClaudeAgent/BlueTasks #14
npm:lexical
OpenClaudeAgent
chore(deps): Bump @lexical/list from 0.35.0 to 0.42.0
Closed 6 months ago
OpenClaudeAgent/BlueTasks #6
npm:@lexical/list
OpenClaudeAgent
chore(deps): bump twilio from 5.10.7 to 5.12.2
Open 6 months ago
resadegh/monitrax #447
npm:twilio
resadegh
chore(deps): bump the dependencies group across 1 directory with 23 updates
Open 7 months ago
OG-XFERNO/XFERNO #23
npm:@vitejs/plugin-react npm:lucide-react +21 more
OG-XFERNO
deps(deps): bump the dependencies group across 1 directory with 27 updates
Closed 7 months ago
ZRosserMcIntosh/railgun #23
npm:@types/node npm:stripe +25 more
ZRosserMcIntosh
chore(deps): bump the npm_and_yarn group across 2 directories with 22 updates
Closed 7 months ago
GateHubNet/data-api #172
npm:axios npm:@babel/runtime +13 more
GateHubNet
chore(deps): bump the npm_and_yarn group across 2 directories with 23 updates
Closed 7 months ago
GateHubNet/data-api #170
npm:axios npm:@babel/runtime +14 more
GateHubNet
chore(deps): bump the npm_and_yarn group across 2 directories with 22 updates
Closed 7 months ago
GateHubNet/data-api #167
npm:axios npm:@babel/runtime +12 more
GateHubNet
Bump twilio from 3.64.0 to 5.12.2
Closed 7 months ago
TechLeo0485/twilio-voice #15
npm:twilio
TechLeo0485
Bump qs, @nestjs/platform-express and express
Closed 7 months ago
Stilllee/tastorage-server #3
npm:express npm:qs, @nestjs/platform-express
Stilllee
chore(deps): bump qs and @nestjs/platform-express
Open 7 months ago
amplication/opentelemetry-nestjs #26
npm:qs npm:@nestjs/platform-express
amplication
Bump axios and twilio in /townService
Open 7 months ago
zachnorman02/fall-22-team-project-group-413 #102
npm:axios npm:twilio
zachnorman02
chore(backend)(deps): bump twilio from 5.11.2 to 5.12.1 in /backend
Open 7 months ago
RODRIGOGRILLOMOREIRA/SISTEMA-DE-GESTAO-ESCOLAR #30
npm:twilio
RODRIGOGRILLOMOREIRA
chore(deps): bump the dependencies group across 1 directory with 10 updates
Open 7 months ago
NEO-FlowOFF/flowcloser-agent #2
npm:@types/node npm:express +8 more
NEO-FlowOFF
chore(deps): bump @nestjs/platform-express from 10.4.20 to 10.4.22
Open 7 months ago
Mojim47/Marketplace #13
npm:@nestjs/platform-express
Mojim47
chore(deps): bump @nestjs/common from 10.4.20 to 10.4.22
Open 7 months ago
Mojim47/Marketplace #7
npm:@nestjs/common
Mojim47
chore(deps): bump twilio from 5.11.2 to 5.12.0 in /server
Open 7 months ago
golebiepalkamtm-ship-it/react #9
npm:twilio
golebiepalkamtm-ship-it
chore(deps): bump the production-dependencies group across 1 directory with 64 updates
Open 7 months ago
dimpap1987/js-monorepo #81
npm:lucide-react npm:axios +62 more
dimpap1987
chore(deps): bump the nestjs group with 4 updates
Open 8 months ago
mbc-net/mbc-cqrs-serverless #309
npm:@nestjs/cli npm:@nestjs/common +2 more
mbc-net
chore(deps): bump the dependencies group across 1 directory with 21 updates
Closed 8 months ago
OG-XFERNO/XFERNO #22
npm:@vitejs/plugin-react npm:lucide-react +19 more
OG-XFERNO
chore(deps): bump the production-dependencies group across 1 directory with 63 updates
Open 8 months ago
dimpap1987/js-monorepo #80
npm:lucide-react npm:axios +61 more
dimpap1987
chore(deps): bump the minor-and-patch group with 16 updates
Closed 8 months ago
clduab11/pricehawk #68
npm:vitest npm:zod +14 more
clduab11
build(deps): bump twilio from 5.10.7 to 5.12.0
Open 8 months ago
madfam-org/janua #179
npm:twilio
madfam-org
chore(deps): bump the production-dependencies group with 9 updates
Open 8 months ago
killerlux/kouskous #29
npm:next npm:@nestjs/common +7 more
killerlux
chore(deps): bump the production-dependencies group in /backend with 9 updates
Open 8 months ago
jamsmac/VHM24 #101
npm:puppeteer npm:@aws-sdk/client-s3 +7 more
jamsmac
build(deps): bump multer and @nestjs/platform-express
Closed 8 months ago
Parfait18/nestjs-crud #10
npm:multer npm:@nestjs/platform-express
Parfait18
deps(deps): bump twilio from 5.7.1 to 5.12.0
Open 8 months ago
kunleulysses/AI-FI #13
npm:twilio
kunleulysses
chore(backend)(deps): update @nestjs/core requirement from ^10.2.10 to ^10.4.22 in /backend
Open 8 months ago
piyush26293/testing-module #17
npm:@nestjs/core
piyush26293
Bump twilio from 3.64.0 to 5.12.0
Closed 8 months ago
TechLeo0485/twilio-voice #10
npm:twilio
TechLeo0485
Bump qs and @nestjs/platform-express
Closed 8 months ago
aureasiqueira1/extrator-prova #4
npm:qs npm:@nestjs/platform-express
aureasiqueira1
chore(deps): bump @nestjs/common from 10.4.20 to 10.4.22
Open 8 months ago
Shinobi-Open-Source-Academy/sos-academy-platform #105
npm:@nestjs/common
Shinobi-Open-Source-Academy
chore(deps): bump the production-dependencies group with 21 updates
Closed 8 months ago
nestjslatam/ddd #10
npm:graphql npm:@nestjs/cli +19 more
nestjslatam
Advisory Details
Published: December 30, 2025 9 months ago
Updated: September 16, 2026 about 10 hours ago
CVSS Score: 6.3 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:L
EPSS: 0.46% 39th percentile
Source: Github
Classification: GENERAL
UUID: GSA_kwCzR0hTQS02cnc3LXZweG0tNDk4cM4ABQaB
PR Statistics
PR Status
Open 34 (55.7%)
Merged 0 (0.0%)
Closed 27 (44.3%)
Update Types
Major 40 (6.8%)
Minor 294 (50.0%)
Patch 249 (42.3%)