Impact
A synchronous TypeError occurs when the qs library processes a comma‑formatted array with the encodeValuesOnly flag set to true if any element is null or undefined. The error arises in lib/utils.js while reading the length property of a nullish value. The exception propagates out of qs.stringify and is typically trapped by an HTTP framework’s error boundary, causing the current request to fail with a 500 status code. In environments where the error is not caught—such as background jobs or startup scripts—the worker process may terminate, resulting in a brief denial of service for all subsequent requests. This vulnerability does not provide code execution or information disclosure but can degrade availability for applications that rely on qs.stringify for query string construction.
Affected Systems
The flaw exists in versions of the ljharb:qs package from 6.11.1 up to, but not including, 6.15.2. Earlier releases (6.7.x through 6.11.0) handled the comma+encodeValuesOnly case differently and are not affected. The issue surfaces only when callers supply both arrayFormat:'comma' and encodeValuesOnly:true to qs.stringify with inputs that may contain null or undefined elements.
Risk and Exploitability
The CVSS score of 6.3 classifies this as moderate severity. No EPSS data is available; it is not listed in the CISA KEV catalog. Exploitation requires no special privileges; any user able to influence the data passed to qs.stringify can trigger the fault. In typical web applications the impact manifests as service interruptions or increased error rate, but the technical barrier is low and the crash is immediate once the vulnerable combination is invoked.
OpenCVE Enrichment