CVE-2022-24999: n/a in n/a
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 Analysis
Technical Summary
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.
Affected Countries
Germany, France, United Kingdom, Netherlands, Italy, Spain, Poland, Sweden, Belgium, Ireland
CVE-2022-24999: n/a in 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
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.
For access to advanced analysis and higher rate limits, contact root@offseq.com
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
Related Threats
CVE-2025-43733: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in Liferay Portal
LowCVE-2025-43731: CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') in Liferay Portal
MediumCVE-2025-7693: CWE-20: Improper Input Validation in Rockwell Automation PLC - Micro850 L50E
CriticalCVE-2025-55293: CWE-287: Improper Authentication in meshtastic firmware
CriticalCVE-2025-55300: CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in komari-monitor komari
HighActions
Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.
External Links
Need enhanced features?
Contact root@offseq.com for Pro access with improved analysis and higher rate limits.