CVE-2025-15284
arrayLimit bypass in bracket notation allows DoS via memory exhaustion
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.3
arrayLimit bypass in bracket notation allows DoS via memory exhaustion
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.
- Record
CVE-2025-15284- CVSS 4.0
- 6.3 Medium
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 - CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-20
- Updated
- 2026-11-02
EUVDEUVD-2025-205660
6.3
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.
- Record
EUVD-2025-205660- CVSS 4.0
- 6.3 Medium
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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-6rw7-vpxm-498p
6.3
qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion
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.
- Record
GHSA-6rw7-vpxm-498p- CVSS 4.0
- 6.3 Medium
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 - CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-20
- Updated
- 2026-11-02
NVD
6.3
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.
- Record
CVE-2025-15284- CVSS 4.0
- 6.3 Medium
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 - CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-20
- Updated
- 2026-11-02
OSV
6.3
arrayLimit bypass in bracket notation allows DoS via memory exhaustion
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.
- Record
CVE-2025-15284- CVSS 4.0
- 6.3 Medium
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 - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2025-15284
6.3
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.
- Record
DEBIAN-CVE-2025-15284- CVSS 4.0
- 6.3 Medium
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 - Updated
- 2026-11-02
Show 35 moreShow less
OSVGHSA-6rw7-vpxm-498p
6.3
qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion
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.
- Record
GHSA-6rw7-vpxm-498p- CVSS 4.0
- 6.3 Medium
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 - CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVRHSA-2026:18480
8.8
Red Hat Security Advisory: linux-sgx security update
- Record
RHSA-2026:18480- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L - Updated
- 2026-11-02
OSVRHSA-2026:18868
8.8
Red Hat Security Advisory: linux-sgx security update
- Record
RHSA-2026:18868- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L - Updated
- 2026-11-02
OSVRHSA-2026:33371
9.6
Red Hat Security Advisory: Red Hat JBoss Enterprise Application Platform 7.3.18 security update
- Record
RHSA-2026:33371- CVSS 3.1
- 9.6 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L - Updated
- 2026-11-02
OSVRLSA-2026:18480
8.8
Important: linux-sgx security update
The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.
Security Fix(es):
-
qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)
-
node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)
-
node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)
-
lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)
-
node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
Additional Changes:
For detailed information on changes in this release, see the Rocky Linux 10 Release Notes linked from the References section.
- Record
RLSA-2026:18480- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L - Updated
- 2026-11-02
OSVRLSA-2026:18868
8.8
Important: linux-sgx security update
The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.
Security Fix(es):
-
qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)
-
node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)
-
node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)
-
lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)
-
node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
Additional Changes:
For detailed information on changes in this release, see the Rocky Linux 9 Release Notes linked from the References section.
- Record
RLSA-2026:18868- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L - Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2025-15284
3.7
CVE-2025-15284 in qs - Patched by Root
Root has patched CVE-2025-15284 in the qs package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2025-15284- CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2025-15284
6.3
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.
- Record
UBUNTU-CVE-2025-15284- CVSS 4.0
- 6.3 Medium
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 - CVSS 3.1
- 3.7 Low
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
OSVALSA-2026:18480 No score
Important: linux-sgx security update
The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.
Security Fix(es):
- qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)
- node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)
- node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)
- lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)
- node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
Additional Changes:
For detailed information on changes in this release, see the AlmaLinux Release Notes linked from the References section.
- Record
ALSA-2026:18480- Updated
- 2026-11-02
OSVALSA-2026:18868 No score
Important: linux-sgx security update
The Intel SGX SDK is a collection of APIs, libraries, documentations and tools that allow software developers to create and debug Intel SGX enabled applications in C/C++.
Security Fix(es):
- qs: qs: Denial of Service via improper input validation in array parsing (CVE-2025-15284)
- node-tar: tar: node-tar: Arbitrary file overwrite and symlink poisoning via unsanitized linkpaths in archives (CVE-2026-23745)
- node-tar: tar: node-tar: Arbitrary file overwrite via Unicode path collision race condition (CVE-2026-23950)
- lodash: prototype pollution in _.unset and _.omit functions (CVE-2025-13465)
- node-tar: tar: node-tar: Arbitrary file creation via path traversal bypass in hardlink security check (CVE-2026-24842)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
Additional Changes:
For detailed information on changes in this release, see the AlmaLinuxRelease Notes linked from the References section.
- Record
ALSA-2026:18868- Updated
- 2026-11-02
OSVAZL-73316 No score
CVE-2025-15284 affecting package js-jquery 3.5.0-4
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.
- Record
AZL-73316- Updated
- 2026-11-05
OSVAZL-73319 No score
CVE-2025-15284 affecting package nodejs-nodemon 2.0.3-5
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.
- Record
AZL-73319- Updated
- 2026-11-05
OSVAZL-73353 No score
CVE-2025-15284 affecting package js-jquery 3.5.0-4
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.
- Record
AZL-73353- Updated
- 2026-11-02
OSVAZL-73359 No score
CVE-2025-15284 affecting package nodejs-nodemon 2.0.3-4
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.
- Record
AZL-73359- Updated
- 2026-11-02
OSVCLSA-2026-1773101688 No score
TuxCare security update for qs (3 CVEs)
TuxCare rebuilt qs to address 3 CVEs. Fixed in 5.2.0-tuxcare.1.
- Record
CLSA-2026-1773101688- Updated
- 2026-11-02
OSVCLSA-2026-1773101691 No score
TuxCare security update for qs (3 CVEs)
TuxCare rebuilt qs to address 3 CVEs. Fixed in 5.1.0-tuxcare.1.
- Record
CLSA-2026-1773101691- Updated
- 2026-11-02
OSVCLSA-2026-1773274548 No score
TuxCare security update for qs (1 CVE)
TuxCare rebuilt qs to address 1 CVE. Fixed in 6.5.3-tuxcare.1.
- Record
CLSA-2026-1773274548- Updated
- 2026-11-02
OSVCLSA-2026-1773274550 No score
TuxCare security update for qs (3 CVEs)
TuxCare rebuilt qs to address 3 CVEs. Fixed in 2.3.3-tuxcare.1.
- Record
CLSA-2026-1773274550- Updated
- 2026-11-02
OSVCLSA-2026-1776299673 No score
TuxCare security update for qs (1 CVE)
TuxCare rebuilt qs to address 1 CVE. Fixed in 6.5.5-tuxcare.1.
- Record
CLSA-2026-1776299673- Updated
- 2026-11-02
OSVCLSA-2026-1784509773 No score
TuxCare security update for qs (2 CVEs)
TuxCare rebuilt qs to address 2 CVEs. Fixed in 5.2.1-tuxcare.1.
- Record
CLSA-2026-1784509773- Updated
- 2026-11-02
OSVCLSA-2026-1784683089 No score
TuxCare security update for qs (2 CVEs)
TuxCare rebuilt qs to address 2 CVEs. Fixed in 6.10.7-tuxcare.1.
- Record
CLSA-2026-1784683089- Updated
- 2026-11-02
OSVCLSA-2026-1784769524 No score
TuxCare security update for qs (2 CVEs)
TuxCare rebuilt qs to address 2 CVEs. Fixed in 6.10.3-tuxcare.1.
- Record
CLSA-2026-1784769524- Updated
- 2026-11-02
OSVCLSA-2026-1784769609 No score
TuxCare security update for qs (3 CVEs)
TuxCare rebuilt qs to address 3 CVEs. Fixed in 6.7.0-tuxcare.2.
- Record
CLSA-2026-1784769609- Updated
- 2026-11-02
OSVCLSA-2026-1790521454 No score
TuxCare security update for qs (2 CVEs)
TuxCare rebuilt qs to address 2 CVEs. Fixed in 6.13.0-tuxcare.1.
- Record
CLSA-2026-1790521454- Updated
- 2026-11-02
OSVCLSA-2026-1791373797 No score
TuxCare security update for qs (5 CVEs)
TuxCare rebuilt qs to address 5 CVEs. Fixed in 0.6.5-tuxcare.1.
- Record
CLSA-2026-1791373797- Updated
- 2026-11-02
OSVCLSA-2026-1791626635 No score
TuxCare security update for qs (1 CVE)
TuxCare rebuilt qs to address 1 CVE. Fixed in 6.4.3-tuxcare.2.
- Record
CLSA-2026-1791626635- Updated
- 2026-11-02
OSVCLSA-2026-1791806891 No score
TuxCare security update for qs (1 CVE)
TuxCare rebuilt qs to address 1 CVE. Fixed in 6.2.6-tuxcare.2.
- Record
CLSA-2026-1791806891- Updated
- 2026-11-02
OSVCLSA-2026-1792160905 No score
TuxCare security update for qs (1 CVE)
TuxCare rebuilt qs to address 1 CVE. Fixed in 1.0.2-tuxcare.1.
- Record
CLSA-2026-1792160905- Updated
- 2026-11-02
OSVCLSA-2026-1792164286 No score
TuxCare security update for qs (3 CVEs)
TuxCare rebuilt qs to address 3 CVEs. Fixed in 6.11.2-tuxcare.1.
- Record
CLSA-2026-1792164286- Updated
- 2026-11-02
OSVCLSA-2026-1792164375 No score
TuxCare security update for qs (2 CVEs)
TuxCare rebuilt qs to address 2 CVEs. Fixed in 6.10.4-tuxcare.1.
- Record
CLSA-2026-1792164375- Updated
- 2026-11-02
OSVCLSA-2026-1792447268 No score
TuxCare security update for qs (3 CVEs)
TuxCare rebuilt qs to address 3 CVEs. Fixed in 6.5.1-tuxcare.1.
- Record
CLSA-2026-1792447268- Updated
- 2026-11-02
OSVCLSA-2026-1792476180 No score
TuxCare security update for qs (4 CVEs)
TuxCare rebuilt qs to address 4 CVEs. Fixed in 6.2.1-tuxcare.1.
- Record
CLSA-2026-1792476180- Updated
- 2026-11-02
OSVCLSA-2026-1792763694 No score
TuxCare security update for qs (2 CVEs)
TuxCare rebuilt qs to address 2 CVEs. Fixed in 6.5.3-tuxcare.2.
- Record
CLSA-2026-1792763694- Updated
- 2026-11-02
OSVCLSA-2026-1793015893 No score
TuxCare security update for qs (5 CVEs)
TuxCare rebuilt qs to address 5 CVEs. Fixed in 0.4.2-tuxcare.1.
- Record
CLSA-2026-1793015893- Updated
- 2026-11-02
OSVCLSA-2026-1793867524 No score
TuxCare security update for qs (1 CVE)
TuxCare rebuilt qs to address 1 CVE. Fixed in 6.14.0-tuxcare.6.
- Record
CLSA-2026-1793867524- Updated
- 2026-11-05
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
qsnpm |
before 6.14.1 | 6.14.1 |
sgx-commonAlmaLinux:10 From an advisory covering 5 CVEs |
before 2.26-7.el10 | 2.26-7.el10 |
sgx-libsAlmaLinux:10 From an advisory covering 5 CVEs |
before 2.26-7.el10 | 2.26-7.el10 |
sgx-mpaAlmaLinux:10 From an advisory covering 5 CVEs |
before 2.26-7.el10 | 2.26-7.el10 |
sgx-pccsAlmaLinux:10 From an advisory covering 5 CVEs |
before 2.26-7.el10 | 2.26-7.el10 |
sgx-pccs-adminAlmaLinux:10 From an advisory covering 5 CVEs |
before 2.26-7.el10 | 2.26-7.el10 |
sgx-pckid-toolAlmaLinux:10 From an advisory covering 5 CVEs |
before 2.26-7.el10 | 2.26-7.el10 |
tdx-qgsAlmaLinux:10 From an advisory covering 5 CVEs |
before 2.26-7.el10 | 2.26-7.el10 |
sgx-commonAlmaLinux:9 From an advisory covering 5 CVEs |
before 2.26-7.el9 | 2.26-7.el9 |
sgx-libsAlmaLinux:9 From an advisory covering 5 CVEs |
before 2.26-7.el9 | 2.26-7.el9 |
Show 89 moreShow less
| Package | Affected | Fixed |
|---|---|---|
sgx-mpaAlmaLinux:9 From an advisory covering 5 CVEs |
before 2.26-7.el9 | 2.26-7.el9 |
sgx-pccsAlmaLinux:9 From an advisory covering 5 CVEs |
before 2.26-7.el9 | 2.26-7.el9 |
sgx-pccs-adminAlmaLinux:9 From an advisory covering 5 CVEs |
before 2.26-7.el9 | 2.26-7.el9 |
sgx-pckid-toolAlmaLinux:9 From an advisory covering 5 CVEs |
before 2.26-7.el9 | 2.26-7.el9 |
tdx-qgsAlmaLinux:9 From an advisory covering 5 CVEs |
before 2.26-7.el9 | 2.26-7.el9 |
js-jqueryAzure Linux:3 |
through 3.5.0-4 | None known |
nodejs-nodemonAzure Linux:3 |
through 2.0.3-5 | None known |
js-jqueryAzure Linux:2 |
through 3.5.0-4 | None known |
nodejs-nodemonAzure Linux:2 |
through 2.0.3-4 | None known |
qsTuxCare:npm From an advisory covering 3 CVEs |
5.2.0-tuxcare.0 up to 5.2.0-tuxcare.1, plus listed versions 5.2.0 |
5.2.0-tuxcare.1 |
qsTuxCare:npm From an advisory covering 3 CVEs |
5.1.0-tuxcare.0 up to 5.1.0-tuxcare.1, plus listed versions 5.1.0 |
5.1.0-tuxcare.1 |
qsTuxCare:npm |
6.5.3-tuxcare.0 up to 6.5.3-tuxcare.1, plus listed versions 6.5.3 |
6.5.3-tuxcare.1 |
qsTuxCare:npm From an advisory covering 3 CVEs |
2.3.3-tuxcare.0 up to 2.3.3-tuxcare.1, plus listed versions 2.3.3 |
2.3.3-tuxcare.1 |
qsTuxCare:npm |
6.5.5-tuxcare.0 up to 6.5.5-tuxcare.1, plus listed versions 6.5.5 |
6.5.5-tuxcare.1 |
qsTuxCare:npm From an advisory covering 2 CVEs |
5.2.1-tuxcare.0 up to 5.2.1-tuxcare.1, plus listed versions 5.2.1 |
5.2.1-tuxcare.1 |
qsTuxCare:npm From an advisory covering 2 CVEs |
6.10.7-tuxcare.0 up to 6.10.7-tuxcare.1, plus listed versions 6.10.7 |
6.10.7-tuxcare.1 |
qsTuxCare:npm From an advisory covering 2 CVEs |
6.10.3-tuxcare.0 up to 6.10.3-tuxcare.1, plus listed versions 6.10.3 |
6.10.3-tuxcare.1 |
qsTuxCare:npm From an advisory covering 3 CVEs |
6.7.0-tuxcare.0 up to 6.7.0-tuxcare.2, plus listed versions 6.7.06.7.0-tuxcare.1 |
6.7.0-tuxcare.2 |
qsTuxCare:npm From an advisory covering 2 CVEs |
6.13.0-tuxcare.0 up to 6.13.0-tuxcare.1, plus listed versions 6.13.0 |
6.13.0-tuxcare.1 |
qsTuxCare:npm From an advisory covering 5 CVEs |
0.6.5-tuxcare.0 up to 0.6.5-tuxcare.1, plus listed versions 0.6.5 |
0.6.5-tuxcare.1 |
qsTuxCare:npm |
6.4.3-tuxcare.0 up to 6.4.3-tuxcare.2, plus listed versions 6.4.36.4.3-tuxcare.1 |
6.4.3-tuxcare.2 |
qsTuxCare:npm |
6.2.6-tuxcare.0 up to 6.2.6-tuxcare.2, plus listed versions 6.2.66.2.6-tuxcare.1 |
6.2.6-tuxcare.2 |
qsTuxCare:npm |
1.0.2-tuxcare.0 up to 1.0.2-tuxcare.1, plus listed versions 1.0.2 |
1.0.2-tuxcare.1 |
qsTuxCare:npm From an advisory covering 3 CVEs |
6.11.2-tuxcare.0 up to 6.11.2-tuxcare.1, plus listed versions 6.11.2 |
6.11.2-tuxcare.1 |
qsTuxCare:npm From an advisory covering 2 CVEs |
6.10.4-tuxcare.0 up to 6.10.4-tuxcare.1, plus listed versions 6.10.4 |
6.10.4-tuxcare.1 |
qsTuxCare:npm From an advisory covering 3 CVEs |
6.5.1-tuxcare.0 up to 6.5.1-tuxcare.1, plus listed versions 6.5.1 |
6.5.1-tuxcare.1 |
qsTuxCare:npm From an advisory covering 4 CVEs |
6.2.1-tuxcare.0 up to 6.2.1-tuxcare.1, plus listed versions 6.2.1 |
6.2.1-tuxcare.1 |
qsTuxCare:npm From an advisory covering 2 CVEs |
6.5.3-tuxcare.0 up to 6.5.3-tuxcare.2, plus listed versions 6.5.36.5.3-tuxcare.1 |
6.5.3-tuxcare.2 |
qsTuxCare:npm From an advisory covering 5 CVEs |
0.4.2-tuxcare.0 up to 0.4.2-tuxcare.1, plus listed versions 0.4.2 |
0.4.2-tuxcare.1 |
qsTuxCare:npm |
6.14.0-tuxcare.0 up to 6.14.0-tuxcare.6, plus listed versions 6.14.06.14.0-tuxcare.16.14.0-tuxcare.26.14.0-tuxcare.36.14.0-tuxcare.46.14.0-tuxcare.5 |
6.14.0-tuxcare.6 |
node-qsDebian:12 |
All versions, plus listed versions 6.11.0+ds+~6.9.7-36.11.0+ds+~6.9.7-46.13.0+ds+~6.9.16-16.14.1+ds+~6.14.0-16.15.0+ds+~6.15.0-1 Show 4 moreShow less6.15.0+ds+~6.15.0-26.15.0+ds+~6.15.0-36.15.2+ds+~6.15.1-16.16.0+ds+~6.15.1-1 |
None known |
node-qsDebian:13 |
All versions, plus listed versions 6.13.0+ds+~6.9.16-16.14.1+ds+~6.14.0-16.15.0+ds+~6.15.0-16.15.0+ds+~6.15.0-26.15.0+ds+~6.15.0-36.15.2+ds+~6.15.1-16.16.0+ds+~6.15.1-1 |
None known |
node-qsDebian:14 |
before 6.14.1+ds+~6.14.0-1, plus listed versions 6.13.0+ds+~6.9.16-1 |
6.14.1+ds+~6.14.0-1 |
linux-sgxRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
linux-sgx-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
linux-sgx-debugsourceRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-commonRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-enclave-devel-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-libsRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-libs-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-mpaRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-mpa-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-pccsRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-pccs-adminRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-pccs-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-pckid-toolRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
sgx-pckid-tool-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
tdx-attest-libs-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
tdx-qgsRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
tdx-qgs-debuginfoRed Hat:enterprise_linux:10.2 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
linux-sgxRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
linux-sgx-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
linux-sgx-debugsourceRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-commonRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-enclave-devel-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-libsRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-libs-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-mpaRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-mpa-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-pccsRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-pccs-adminRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-pccs-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-pckid-toolRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
sgx-pckid-tool-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
tdx-attest-libs-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
tdx-qgsRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
tdx-qgs-debuginfoRed Hat:enterprise_linux:9::appstream From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
eap7-wildflyRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:7.3.18-3.GA_redhat_00001.1.el7eap | 0:7.3.18-3.GA_redhat_00001.1.el7eap |
eap7-wildfly-java-jdk11Red Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:7.3.18-3.GA_redhat_00001.1.el7eap | 0:7.3.18-3.GA_redhat_00001.1.el7eap |
eap7-wildfly-java-jdk8Red Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:7.3.18-3.GA_redhat_00001.1.el7eap | 0:7.3.18-3.GA_redhat_00001.1.el7eap |
eap7-wildfly-javadocsRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:7.3.18-3.GA_redhat_00001.1.el7eap | 0:7.3.18-3.GA_redhat_00001.1.el7eap |
eap7-wildfly-modulesRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:7.3.18-3.GA_redhat_00001.1.el7eap | 0:7.3.18-3.GA_redhat_00001.1.el7eap |
eap7-undertowRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:2.0.41-8.SP9_redhat_00001.1.el7eap | 0:2.0.41-8.SP9_redhat_00001.1.el7eap |
eap7-apache-cxfRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:3.4.10-4.SP2_redhat_00004.1.el7eap | 0:3.4.10-4.SP2_redhat_00004.1.el7eap |
eap7-apache-cxf-rtRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:3.4.10-4.SP2_redhat_00004.1.el7eap | 0:3.4.10-4.SP2_redhat_00004.1.el7eap |
eap7-apache-cxf-servicesRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:3.4.10-4.SP2_redhat_00004.1.el7eap | 0:3.4.10-4.SP2_redhat_00004.1.el7eap |
eap7-apache-cxf-toolsRed Hat:jboss_enterprise_application_platform_eus:7.3::el7 From an advisory covering 11 CVEs |
before 0:3.4.10-4.SP2_redhat_00004.1.el7eap | 0:3.4.10-4.SP2_redhat_00004.1.el7eap |
linux-sgxRocky Linux:10 From an advisory covering 5 CVEs |
before 0:2.26-7.el10 | 0:2.26-7.el10 |
linux-sgxRocky Linux:9 From an advisory covering 5 CVEs |
before 0:2.26-7.el9 | 0:2.26-7.el9 |
qsRoot:npm |
before 6.11.0-aikido.2 | 6.11.0-aikido.26.11.2-aikido.16.13.0-aikido.26.5.5-aikido.26.14.0-aikido.36.11.0-aikido.36.14.0-aikido.44.0.0-aikido.16.5.3-aikido.26.5.2-aikido.36.7.0-aikido.26.7.0-aikido.36.14.1-aikido.26.14.1-aikido.3 |
@rootio/qsRoot:npm |
before 6.11.0-root.io.2 | 6.11.0-root.io.26.14.0-root.io.16.11.2-root.io.16.14.0-root.io.26.13.0-root.io.16.11.0-root.io.16.5.5-root.io.16.13.0-root.io.26.5.5-root.io.26.14.0-root.io.36.11.0-root.io.36.14.0-root.io.44.0.0-root.io.16.5.3-root.io.26.5.2-root.io.36.7.0-root.io.26.7.0-root.io.36.14.1-root.io.16.14.1-root.io.26.14.1-root.io.3 |
node-qsUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 0.4.2-10.6.5-10.6.5-1ubuntu0.1~esm1 |
None known |
node-qsUbuntu:16.04:LTS |
All versions, plus listed versions 2.2.4-1 |
None known |
node-qsUbuntu:18.04:LTS |
All versions, plus listed versions 2.2.4-12.2.4-1ubuntu1 |
None known |
node-qsUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 6.5.2-16.9.0+ds-16.9.1+ds-16.9.1+ds-1ubuntu0.1~esm1 |
None known |
node-qsUbuntu:22.04:LTS |
All versions, plus listed versions 6.9.4+ds-16.10.1+ds-16.10.2+ds+~6.9.7-16.10.3+ds+~6.9.7-1 |
None known |
node-qsUbuntu:24.04:LTS |
All versions, plus listed versions 6.11.0+ds+~6.9.7-36.11.0+ds+~6.9.7-4 |
None known |
node-qsUbuntu:25.10 |
All versions, plus listed versions 6.13.0+ds+~6.9.16-1 |
None known |
node-qsUbuntu:26.04:LTS |
All versions, plus listed versions 6.13.0+ds+~6.9.16-16.14.1+ds+~6.14.0-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| affected, aliases, facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-15284 is a medium vulnerability (CVSS 6.3) in Qs Project Qs, published December 29, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.45%, the 39th percentile. Fixed in qs 6.14.1.
References
github.com/ljharb/qs/security/advisories/GHSA-6rw7-vpxm-498p
github.com/ljharb/qs/commit/3086902ecf7f088d0d1803887643ac6c03d415b9
nvd.nist.gov/vuln/detail/CVE-2025-15284
github.com/advisories/GHSA-6rw7-vpxm-498p
access.redhat.com/errata/RHSA-2026:18480
access.redhat.com/security/cve/CVE-2025-13465
Show 100 moreShow less
access.redhat.com/security/cve/CVE-2025-15284
access.redhat.com/security/cve/CVE-2026-23745
access.redhat.com/security/cve/CVE-2026-23950
access.redhat.com/security/cve/CVE-2026-24842
bugzilla.redhat.com/2425946
bugzilla.redhat.com/2430538
bugzilla.redhat.com/2431036
bugzilla.redhat.com/2431740
bugzilla.redhat.com/2433645
errata.almalinux.org/10/ALSA-2026-18480.html
access.redhat.com/errata/RHSA-2026:18868
errata.almalinux.org/9/ALSA-2026-18868.html
npmjs.com/qs
github.com/CVEProject/cvelistV5/tree/main/cves/2025/15xxx/CVE-2025-15284.json
github.com/ljharb/qs
security-tracker.debian.org/tracker/CVE-2025-15284
docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/10.2_release_notes/index
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=2425946
bugzilla.redhat.com/show_bug.cgi?id=2430538
bugzilla.redhat.com/show_bug.cgi?id=2431036
bugzilla.redhat.com/show_bug.cgi?id=2431740
bugzilla.redhat.com/show_bug.cgi?id=2433645
issues.redhat.com/browse/RHEL-110112
issues.redhat.com/browse/RHEL-121612
issues.redhat.com/browse/RHEL-140108
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_18480.json
cve.org/CVERecord?id=CVE-2025-13465
nvd.nist.gov/vuln/detail/CVE-2025-13465
github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
cve.org/CVERecord?id=CVE-2025-15284
cve.org/CVERecord?id=CVE-2026-23745
nvd.nist.gov/vuln/detail/CVE-2026-23745
github.com/isaacs/node-tar/commit/340eb285b6d986e91969a1170d7fe9b0face405e
github.com/isaacs/node-tar/security/advisories/GHSA-8qq5-rm4j-mr97
cve.org/CVERecord?id=CVE-2026-23950
nvd.nist.gov/vuln/detail/CVE-2026-23950
github.com/isaacs/node-tar/commit/3b1abfae650056edfabcbe0a0df5954d390521e6
github.com/isaacs/node-tar/security/advisories/GHSA-r6q2-hw4h-h46w
cve.org/CVERecord?id=CVE-2026-24842
nvd.nist.gov/vuln/detail/CVE-2026-24842
github.com/isaacs/node-tar/commit/f4a7aa9bc3d717c987fdf1480ff7a64e87ffdb46
github.com/isaacs/node-tar/security/advisories/GHSA-34x7-hfp2-rc4v
docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/9.8_release_notes/index
issues.redhat.com/browse/RHEL-127046
issues.redhat.com/browse/RHEL-140109
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_18868.json
access.redhat.com/errata/RHSA-2026:33371
docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/7.3
docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/7.3/html-single/installation_guide/index
docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/7.3/html/7.3.0_release_notes/index
bugzilla.redhat.com/show_bug.cgi?id=2339095
bugzilla.redhat.com/show_bug.cgi?id=2392306
bugzilla.redhat.com/show_bug.cgi?id=2408784
bugzilla.redhat.com/show_bug.cgi?id=2423194
issues.redhat.com/browse/JBEAP-31703
issues.redhat.com/browse/JBEAP-33004
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_33371.json
access.redhat.com/security/cve/CVE-2024-29371
cve.org/CVERecord?id=CVE-2024-29371
nvd.nist.gov/vuln/detail/CVE-2024-29371
bitbucket.org/b_c/jose4j/issues/220/vuln-zip-bomb-attack
access.redhat.com/security/cve/CVE-2025-9784
cve.org/CVERecord?id=CVE-2025-9784
nvd.nist.gov/vuln/detail/CVE-2025-9784
github.com/undertow-io/undertow/pull/1778
github.com/undertow-io/undertow/releases/tag/2.2.38.Final
issues.redhat.com/browse/UNDERTOW-2598
kb.cert.org/vuls/id/767506
access.redhat.com/security/cve/CVE-2025-12543
cve.org/CVERecord?id=CVE-2025-12543
nvd.nist.gov/vuln/detail/CVE-2025-12543
access.redhat.com/security/cve/CVE-2025-23184
cve.org/CVERecord?id=CVE-2025-23184
nvd.nist.gov/vuln/detail/CVE-2025-23184
lists.apache.org/thread/lfs8l63rnctnj2skfrxyys7v8fgnt122
access.redhat.com/security/cve/CVE-2025-23368
bugzilla.redhat.com/show_bug.cgi?id=2337621
cve.org/CVERecord?id=CVE-2025-23368
nvd.nist.gov/vuln/detail/CVE-2025-23368
gruppotim.it/it/footer/red-team.html
access.redhat.com/security/cve/CVE-2025-66412
bugzilla.redhat.com/show_bug.cgi?id=2418155
cve.org/CVERecord?id=CVE-2025-66412
nvd.nist.gov/vuln/detail/CVE-2025-66412
github.com/angular/angular/commit/1c6b0704fb63d051fab8acff84d076abfbc4893a
github.com/angular/angular/security/advisories/GHSA-v4hv-rgfq-gp49
access.redhat.com/security/cve/CVE-2025-69873
bugzilla.redhat.com/show_bug.cgi?id=2439070
cve.org/CVERecord?id=CVE-2025-69873
nvd.nist.gov/vuln/detail/CVE-2025-69873
github.com/EthanKim88/ethan-cve-disclosures/blob/main/CVE-2025-69873-ajv-ReDoS.md
access.redhat.com/security/cve/CVE-2026-1002
bugzilla.redhat.com/show_bug.cgi?id=2430180
cve.org/CVERecord?id=CVE-2026-1002
nvd.nist.gov/vuln/detail/CVE-2026-1002
github.com/eclipse-vertx/vert.x/pull/5895
errata.rockylinux.org/RLSA-2026:18480
errata.rockylinux.org/RLSA-2026:18868
ubuntu.com/security/CVE-2025-15284