CVE-2025-15284 json
arrayLimit bypass in bracket notation allows DoS via memory exhaustion
published 2025-12-29 10 mo ago modified 2026-10-14 25 d ago also GHSA-6rw7-vpxm-498p , EUVD-2025-205660
- cvss
- 3.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 39%
- public exploits
- 0
- none known
Summary
Improper Input Validation vulnerability in qs (parse modules) allows HTTP DoS.This issue affects qs: < 6.14.1.
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[]=valueconsumes 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.
Patch / fix
- npm qs 6.14.1
- qs_project qs 6.14.1
- node-qs Debian 14 6.14.1+ds+~6.14.0-1
debian advisories DEBIAN-CVE-2025-15284
- linux-sgx RHEL 9 2.26-7.el9
- sgx-mpa RHEL 9 2.26-7.el9
- tdx-qgs RHEL 9 2.26-7.el9
- sgx-libs RHEL 9 2.26-7.el9
- sgx-pccs RHEL 9 2.26-7.el9
- sgx-common RHEL 9 2.26-7.el9
- sgx-pccs-admin RHEL 9 2.26-7.el9
- sgx-pckid-tool RHEL 9 2.26-7.el9
red hat advisories RHSA-2026:33371RHSA-2026:18868RHSA-2026:18480
- sgx-mpa AlmaLinux 10 2.26-7.el10
- tdx-qgs AlmaLinux 10 2.26-7.el10
- sgx-libs AlmaLinux 10 2.26-7.el10
- sgx-pccs AlmaLinux 10 2.26-7.el10
- sgx-common AlmaLinux 10 2.26-7.el10
- sgx-pccs-admin AlmaLinux 10 2.26-7.el10
- sgx-pckid-tool AlmaLinux 10 2.26-7.el10
- sgx-mpa AlmaLinux 9 2.26-7.el9
almalinux advisories ALSA-2026:18480ALSA-2026:18868
- linux-sgx Rocky Linux 10 2.26-7.el10
- linux-sgx Rocky Linux 9 2.26-7.el9
rocky linux advisories RLSA-2026:18480RLSA-2026:18868
- github.com/ljharb/qs@3086902 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-15284 updated cvss 7.5
qs: qs: Denial of Service via improper input validation in array parsing
-
Red Hat Logging Subsystem for Red Hat OpenShift openshift-logging/vector-rhel9, openshift-logging/fluentd-rhel9, openshift-logging/kibana6-rhel8, openshift-logging/eventrouter-rhel9, openshift-logging/elasticsearch6-rhel9, openshift-logging/logging-curator5-rhel9, +7 moreaffected: workaround, no fix planned “Will not fix”
-
Red Hat Migration Toolkit for Applications 8 mta/mta-ui-rhel9affected: workaround, no fix available
-
Red Hat Migration Toolkit for Virtualization mtv-candidate/mtv-console-plugin-rhel9, migration-toolkit-virtualization/mtv-console-plugin-rhel9affected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat Node HealthCheck Operator workload-availability/node-remediation-console-rhel8affected: workaround, no fix planned “Will not fix”
-
Red Hat OpenShift Lightspeed openshift-lightspeed/lightspeed-console-plugin-rhel9, openshift-lightspeed/lightspeed-console-plugin-pf5-rhel9affected: workaround, no fix available
-
Red Hat OpenShift Pipelines openshift-pipelines/pipelines-hub-ui-rhel9, openshift-pipelines/pipelines-hub-api-rhel8, openshift-pipelines/pipelines-hub-api-rhel9, openshift-pipelines/pipelines-hub-db-migration-rhel8, openshift-pipelines/pipelines-hub-db-migration-rhel9 Red Hat OpenShift Serverless openshift-serverless-1/kn-eventing-integrations-log-sink-rhel9, openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel9, openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel9, openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel9, openshift-serverless-1/kn-eventing-integrations-timer-source-rhel9, openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel9, +3 more Red Hat 3scale API Management Platform 2 3scale-amp21/system, 3scale-amp22/system, 3scale-amp24/system, 3scale-amp25/system, 3scale-amp26/system, 3scale-amp2/system-rhel7, +2 moreaffected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat Advanced Cluster Management for Kubernetes 2 rhacm2/acm-grafana-rhel9affected: workaround, no fix available
-
Red Hat Advanced Cluster Security 4 advanced-cluster-security/rhacs-roxctl-rhel8, advanced-cluster-security/rhacs-rhel8-operator, advanced-cluster-security/rhacs-operator-bundle, advanced-cluster-security/rhacs-scanner-v4-rhel8, advanced-cluster-security/rhacs-scanner-v4-db-rhel8 Red Hat Ansible Automation Platform 2 ansible-automation-platform-24/lightspeed-rhel8affected: workaround, no fix planned “Will not fix”
show 24 moreshow fewer
-
Red Hat build of Apicurio Registry 2 io.apicurio-apicurio-registryaffected: workaround, no fix available
-
Red Hat build of OptaPlanner 8 org.optaweb.vehiclerouting-optaweb-vehicle-routingaffected: workaround, no fix planned “Will not fix”
-
Red Hat Ceph Storage 8 rhceph/grafana-rhel9 Red Hat Connectivity Link 1 rhcl-1/rhcl-console-plugin-rhel9 Red Hat Data Grid 8 org.infinispan-infinispan-console Red Hat Edge Manager preview rhem/flightctl-ui-ocp-rhel9affected: workaround, no fix available
-
Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/disk-image-cuda-rhel9 Red Hat Fuse 7 io.hawt-project, io.apicurio-apicurito, io.hawt-hawtio-online, io.syndesis-syndesis-parentaffected: workaround, no fix planned “Will not fix”
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-dashboard-rhel8affected: workaround, no fix available
-
Red Hat OpenShift Container Platform 4 openshift4/ose-console, openshift4/ose-console-rhel9, openshift4/ose-networking-console-plugin-rhel9affected: workaround, no fix available, no fix planned “Will not fix”
-
Red Hat OpenShift Dev Spaces devspaces-tech-preview/idea-rhel9 Red Hat OpenShift GitOps openshift-gitops-1/dex-rhel8, openshift-gitops-1/argocd-rhel8, openshift-gitops-1/argocd-rhel9, openshift-gitops-1/gitops-rhel8, openshift-gitops-1/must-gather-rhel8, openshift-gitops-1/argo-rollouts-rhel8, +4 moreaffected: workaround, no fix planned “Will not fix”
-
Red Hat Satellite 6 satellite/iop-remediations-rhel9, satellite/iop-advisor-frontend-rhel9, satellite/iop-vulnerability-frontend-rhel9, satellite/iop-host-inventory-frontend-rhel9affected: workaround, no fix available
-
Red Hat streams for Apache Kafka 3 com.github.streamshub-consoleaffected: workaround, no fix planned “Will not fix”
-
Red Hat Cryostat 4 on RHEL 9 cryostat/cryostat-openshift-console-plugin-rhel9 4.1.0-16fixed: vendor fix RHSA-2026:0761
-
Red Hat Multicluster Global Hub 1.4.9 multicluster-globalhub 1770126537fixed: vendor fix RHSA-2026:2500
-
Red Hat Multicluster Global Hub 1.5.8 multicluster-globalhub 1770109405fixed: vendor fix RHSA-2026:2256
-
Red Hat Network Observability (NETOBSERV) 1.11.0 network-observability 1771227610, network-observability 1771227650fixed: vendor fix RHSA-2026:2900
-
Red Hat Advanced Cluster Security 4.8 advanced-cluster-security 1769615659fixed: vendor fix RHSA-2026:1517
-
Red Hat Advanced Cluster Security 4.9 advanced-cluster-security 1770074713, advanced-cluster-security 1770250889fixed: vendor fix RHSA-2026:2350
-
Red Hat Ansible Automation Platform 2.6 ansible-automation-platform-26 1768889939fixed: vendor fix RHSA-2026:1596
-
Red Hat Developer Hub 1.7 rhdh 1.7.4-1767715042fixed: vendor fix RHSA-2026:0261
-
Red Hat Developer Hub 1.8 rhdh 1768247401fixed: vendor fix RHSA-2026:0531
-
Red Hat Discovery 2 discovery 1767904573fixed: vendor fix RHSA-2026:0414
-
Red Hat Enterprise Linux AppStream (v. 9) sgx-mpa 2.26-7.el9, tdx-qgs 2.26-7.el9, sgx-libs 2.26-7.el9, sgx-pccs 2.26-7.el9, linux-sgx 2.26-7.el9, sgx-common 2.26-7.el9, +2 morefixed: vendor fix RHSA-2026:18868
-
Red Hat Enterprise Linux AppStream (v. 10) sgx-mpa 2.26-7.el10, tdx-qgs 2.26-7.el10, sgx-libs 2.26-7.el10, sgx-pccs 2.26-7.el10, linux-sgx 2.26-7.el10, sgx-common 2.26-7.el10, +2 morefixed: vendor fix RHSA-2026:18480
-
Red Hat JBoss Enterprise Application Platform 7.3 EUS for RHEL 7 Server eap7-wildfly 7.3.18-3.GA_redhat_00001.1.el7eap, eap7-wildfly-modules 7.3.18-3.GA_redhat_00001.1.el7eap, eap7-wildfly-javadocs 7.3.18-3.GA_redhat_00001.1.el7eap, eap7-wildfly-java-jdk8 7.3.18-3.GA_redhat_00001.1.el7eap, eap7-wildfly-java-jdk11 7.3.18-3.GA_redhat_00001.1.el7eapfixed: vendor fix RHSA-2026:33371
-
Red Hat Migration Toolkit 1.8 rhmtc/openshift-migration-ui-rhel8 1783690532fixed: vendor fix RHSA-2026:41928
-
Red Hat OpenShift AI 3.3 rhoai 1769162595, rhoai 1771502843, rhoai 1771502844, rhoai 1771502845, rhoai 1771502863, rhoai 1771502869, +14 morefixed: vendor fix RHSA-2026:19712
23 more fixed, 62 more not affected in the full advisory
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
cisa ICSA-26-071-03 updated cvss 7.5
Siemens SIDIS Prime
-
Siemens SIDIS Prime < 4.0.800affected: fixed in V4.0.800
Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 10 mo ago
Exploit prediction
0.45% chance of exploitation in the next 30 days, higher than 39% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/ljharb/qs/security/advisories/GHSA-6rw7-vpxm-498p referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 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 |
| CNA | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L |
| CNA | 4.0 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| GitHub | 3.1 | 3.7 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | qs | <6.14.1 |
6.14.1 |
Classification
- Weakness
-
- CWE-20 Improper Input Validation
References
-
github.com
/ljharb/qs/commit/3086902ecf7f088d0d1803887643ac6c03d415b9
patch, web
-
github.com
/ljharb/qs/security/advisories/GHSA-6rw7-vpxm-498p
vendor-advisory, web, exploit, mitigation
-
nvd.nist.gov
/vuln/detail/CVE-2025-15284
advisory
-
github.com
/ljharb/qs
package
Sources
- CVE List CVE-2025-15284
- GitHub Advisory GHSA-6rw7-vpxm-498p
- NVD CVE-2025-15284
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.