Skip to main content

CVE-2022-24999: n/a in n/a

High
VulnerabilityCVE-2022-24999cvecve-2022-24999
Published: Sat Nov 26 2022 (11/26/2022, 00:00:00 UTC)
Source: CVE
Vendor/Project: n/a
Product: n/a

Description

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, such as a[__proto__]=b&a[__proto__]&a[length]=100000000. The fix was backported to qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3, and 6.2.4 (and therefore Express 4.17.3, which has "deps: qs@6.9.7" in its release description, is not vulnerable).

AI-Powered Analysis

AILast updated: 06/22/2025, 09:51:54 UTC

Technical Analysis

CVE-2022-24999 is a high-severity vulnerability affecting versions of the 'qs' library prior to 6.10.3, which is widely used in Node.js applications, notably in the Express framework before version 4.17.3. The vulnerability arises from improper handling of the __proto__ key in query string parameters. An attacker can craft a malicious query string containing keys such as a[__proto__]=b&a[__proto__]&a[length]=100000000, which exploits the prototype pollution feature in JavaScript. This causes the Node.js process running the Express application to hang, resulting in a denial of service (DoS) condition. The attack requires no authentication and no user interaction beyond visiting a crafted URL, making it remotely exploitable over the network with low complexity. The root cause is that the vulnerable versions of the 'qs' library do not properly sanitize or restrict the __proto__ property in query parameters, allowing an attacker to manipulate the prototype chain of JavaScript objects, leading to resource exhaustion and process hang. The issue was fixed by backporting patches to multiple versions of 'qs' (6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3, and 6.2.4), and Express 4.17.3 includes the patched qs@6.9.7, thus is not vulnerable. No known exploits in the wild have been reported to date. The vulnerability is classified under CWE-1321 (Improper Handling of Prototype Pollution). The CVSS v3.1 base score is 7.5 (High), reflecting network attack vector, low attack complexity, no privileges or user interaction required, and impact limited to availability (denial of service). Confidentiality and integrity are not impacted.

Potential Impact

For European organizations, this vulnerability poses a significant risk of denial of service attacks against web applications built on vulnerable versions of Express or other Node.js applications using affected versions of the 'qs' library. Such DoS attacks can cause service outages, impacting business continuity, customer trust, and potentially leading to financial losses. Critical public-facing services, including e-government portals, financial services platforms, and e-commerce sites, are particularly at risk. The ease of exploitation (no authentication or user interaction needed) increases the likelihood of automated attacks or scanning by malicious actors. While the vulnerability does not compromise data confidentiality or integrity, the availability impact can disrupt operations and may be leveraged as part of multi-vector attacks. Organizations relying on outdated Express versions or custom Node.js applications with vulnerable 'qs' dependencies should prioritize remediation to avoid service disruptions. The absence of known exploits in the wild suggests proactive patching can effectively mitigate risk before widespread exploitation occurs.

Mitigation Recommendations

1. Immediate upgrade of the 'qs' library to version 6.10.3 or later in all Node.js applications. 2. Upgrade Express framework to version 4.17.3 or later, which includes the patched 'qs' dependency. 3. Conduct a thorough dependency audit using tools like npm audit or Snyk to identify and remediate vulnerable 'qs' versions in all projects, including transitive dependencies. 4. Implement Web Application Firewalls (WAFs) with custom rules to detect and block suspicious query strings containing __proto__ or unusually large length parameters as a temporary mitigation. 5. Monitor application logs and network traffic for abnormal request patterns indicative of exploitation attempts, such as repeated requests with prototype pollution payloads. 6. Employ rate limiting and IP reputation filtering to reduce the risk of automated exploitation attempts. 7. Educate development teams on secure coding practices to avoid prototype pollution risks in future code. 8. Integrate continuous dependency management and patching processes into the software development lifecycle to prevent recurrence.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
mitre
Date Reserved
2022-02-14T00:00:00.000Z
Cisa Enriched
true
Cvss Version
3.1
State
PUBLISHED

Threat ID: 682d983dc4522896dcbeef9e

Added to database: 5/21/2025, 9:09:17 AM

Last enriched: 6/22/2025, 9:51:54 AM

Last updated: 8/10/2025, 3:10:08 PM

Views: 15

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats