Qs Project Qs vulnerabilities
9 known vulnerabilities affecting qs_project/qs.
Total CVEs
9
CISA KEV
0
Public exploits
0
Exploited in wild
0
Severity breakdown
HIGH5MEDIUM3LOW1
Vulnerabilities
Page 1 of 1
CVE-2022-24999P3HIGHCVSS 7.5fixed in 6.2.4≥ 6.3.0, < 6.3.3+7 more2022-11-26
CVE-2022-24999 [HIGH] CWE-1321 CVE-2022-24999: qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a N
qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node process hang for an Express application because an __ proto__ key can be used. In many typical Express use cases, an unauthenticated remote attacker can place the attack payload in the query string of the URL that is used to visit the application,
ghsanvdosv
CVE-2026-2391P3HIGHCVSS 7.5≥ 6.7.0, < 6.14.22026-02-12
CVE-2026-2391 [HIGH] CWE-20 CVE-2026-2391: ### Summary The `arrayLimit` option in qs does not enforce limits for comma-separated values when `c
### Summary
The `arrayLimit` option in qs does not enforce limits for comma-separated values when `comma: true` is enabled, allowing attackers to cause denial-of-service via memory exhaustion. This is a bypass of the array limit enforcement, similar to the bracket notation bypass addressed in GHSA-6rw7-vpxm-498p (CVE-2025-15284).
### Details
When the `c
ghsanvdosv
CVE-2017-1000048P3HIGHCVSS 7.5v1.0.0v1.0.1+28 more2017-07-17
CVE-2017-1000048 [HIGH] CWE-20 CVE-2017-1000048: the web framework using ljharb's qs module older than v6.3.2, v6.2.3, v6.1.2, and v6.0.4 is vulnerab
the web framework using ljharb's qs module older than v6.3.2, v6.2.3, v6.1.2, and v6.0.4 is vulnerable to a DoS. A malicious user can send a evil request to cause the web framework crash.
ghsanvdosv
CVE-2014-10064P3HIGHCVSS 7.5fixed in 1.0.02018-05-31
CVE-2014-10064 [HIGH] CWE-400 CVE-2014-10064: The qs module before 1.0.0 does not have an option or default for specifying object depth and when p
The qs module before 1.0.0 does not have an option or default for specifying object depth and when parsing a string representing a deeply nested object will block the event loop for long periods of time. An attacker could leverage this to cause a temporary denial-of-service condition, for example, in a web application, other requests would not be proc
ghsanvdosv
CVE-2014-7191P4HIGH≥ 0, < 1.0.02017-10-24
CVE-2014-7191 [HIGH] CWE-400 Denial-of-Service Memory Exhaustion in qs
Denial-of-Service Memory Exhaustion in qs
Versions prior to 1.0 of `qs` are affected by a denial of service condition. This condition is triggered by parsing a crafted string that deserializes into very large sparse arrays, resulting in the process running out of memory and eventually crashing.
## Recommendation
Update to version 1.0.0 or later.
ghsaosv
CVE-2026-8723P4MEDIUM≥ 6.11.1, < 6.15.22026-05-22
CVE-2026-8723 [MEDIUM] CWE-476 qs has a remotely triggerable DoS: qs.stringify crashes with TypeError on null/undefined entries in comma-format arrays when encodeValuesOnly is set
qs has a remotely triggerable DoS: qs.stringify crashes with TypeError on null/undefined entries in comma-format arrays when encodeValuesOnly is set
### Summary
`qs.stringify` throws `TypeError` when called with `arrayFormat: 'comma'` and `encodeValuesOnly: true` on an array containing `null` or `undefined`. The thro
ghsa
CVE-2026-82417P4MEDIUM≥ 2.2.5, < 6.16.02026-09-02
CVE-2026-82417 [MEDIUM] CWE-248 qs: Denial of Service via Attacker Controlled isBuffer
qs: Denial of Service via Attacker Controlled isBuffer
### Summary
`qs.stringify()` calls `utils.isBuffer()` on every value it serializes, and `utils.isBuffer()` invokes `obj.constructor.isBuffer(obj)` without checking that it is callable. A value whose own `constructor.isBuffer` is a non-function makes `qs` call a non-callable and throw `TypeError`. Such a value is produced **by `qs.parse` itself** from an
ghsa
CVE-2026-82562P4MEDIUM≥ 6.14.2, < 6.16.02026-09-02
CVE-2026-82562 [MEDIUM] CWE-770 qs array-limit bypass via bracket-key comma parsing
qs array-limit bypass via bracket-key comma parsing
### Summary
`qs` `v6.15.3` allows bracket-key input to bypass `arrayLimit` and `throwOnLimitExceeded` when `comma: true`. The input `a[]=1,2,3,4` succeeds with `arrayLimit: 3`, while the equivalent plain-key input is rejected.
Affected version tested:
```text
qs v6.15.3
commit 18d085e919dae70c8f1b200ab99323058edab2c2
```
### Details
`parseArrayValue()` enf
ghsa
CVE-2025-15284P4LOWCVSS 3.7fixed in 6.14.12025-12-29
CVE-2025-15284 [LOW] CWE-20 CVE-2025-15284: Improper Input Validation vulnerability in qs (parse modules) allows HTTP DoS.This issue affects qs:
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 pa
ghsanvdosv