CVE-2026-110816: CWE-248 Uncaught Exception in ljharb qs
Description
A vulnerability in the 'qs' library versions 6.7.0 through 6.16.0 causes a TypeError when using qs.stringify with arrayFormat 'comma' on arrays containing elements that cannot be coerced to strings, such as objects with a non-callable toString property or null-prototype objects. This can cause synchronous exceptions during query string serialization, potentially leading to HTTP 500 errors or process crashes depending on error handling. The issue was fixed in version 6.16.1.
CVSS v3.1
Score 5.3medium
Affected software
ljharb
qs
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The 'qs' library's stringify function with arrayFormat 'comma' throws a TypeError when an array element cannot be converted to a primitive string value, such as objects with a non-callable toString property or null-prototype objects. This occurs because the implementation uses Array.prototype.join and String coercion without guarding against elements whose string coercion fails. The flaw affects versions >=6.7.0 and <6.16.1 and was fixed in v6.16.1 by coercing such elements to their primitive valueOf or falling back to Object.prototype.toString, preventing the exception. The vulnerability can be triggered by attacker-controlled input parsed with qs.parse using allowPrototypes: true or plainObjects: true, which can produce such problematic objects.
Potential Impact
An unauthenticated attacker can cause any code path that re-serializes attacker-influenced data with qs.stringify using arrayFormat 'comma' to throw a synchronous TypeError. In typical Node.js HTTP frameworks, this results in a 500 error response with the process continuing normally. However, in contexts without proper error boundaries, such as async Express 4 handlers or bare HTTP handlers, the unhandled exception can cause the process to exit, leading to denial of service. There is no impact on confidentiality or integrity, only availability (denial of service).
Mitigation Recommendations
A fix is available in qs version 6.16.1. Users should upgrade to v6.16.1 or later to resolve this issue. Until upgraded, avoid using arrayFormat 'comma' with untrusted input that may contain objects with non-callable toString properties or null prototypes. Also, consider disabling allowPrototypes or plainObjects options in qs.parse to prevent creation of such objects. The vulnerability is fixed and no further action is required once updated.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- harborist
- Date Reserved
- 2026-10-14T21:40:55.805Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6acfffd82cdf04f656b5d8c1
Added to database: 10/14/2026, 22:19:04 UTC
Last enriched: 10/14/2026, 22:33:15 UTC
Last updated: 10/14/2026, 22:33:54 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.