CVE-2022-24999
express: "qs" prototype poisoning causes the hang of the node process
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
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).
qs anterior a 6.10.3, como se usa en Express anterior a 4.17.3 y otros productos, permite a los atacantes provocar que un proceso de Nodo se cuelgue para una aplicación Express porque se puede usar una clave __ proto__. En muchos casos de uso típicos de Express, un atacante remoto no autenticado puede colocar el payload del ataque en la cadena de consulta de la URL que se utiliza para visitar la aplicación, como a[__proto__]=b&a[__proto__]&a[length] =100000000. La solución se respaldó a qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3 y 6.2.4 (y por lo tanto a Express 4.17.3, que tiene "deps : qs@6.9.7" en la descripción de su versión, no es vulnerable).
A flaw was found in the express.js npm package of nodejs:14 module stream. Express.js Express is vulnerable to a denial of service caused by a prototype pollution flaw in qs. By adding or modifying properties of Object.prototype using a __proto__ or constructor payload, a remote attacker can cause a denial of service.
Juraj Somorovsky, Marcel Maehren, Nurullah Erinola, and Robert Merget discovered that the DTLS implementation in the JSSE subsystem of OpenJDK did not properly restrict handshake initiation requests from clients. A remote attacker could possibly use this to cause a denial of service. Markus Loewe discovered that the Java Sound subsystem in OpenJDK did not properly validate the origin of a Soundbank. An attacker could use this to specially craft an untrusted Java application or applet that could load a Soundbank from an attacker controlled remote URL.
CVSS Scores
SSVC
- Decision:Attend
Timeline
- 2022-02-14 CVE Reserved
- 2022-11-26 CVE Published
- 2025-04-29 CVE Updated
- 2025-04-29 First Exploit
- 2025-05-21 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
CAPEC
References (7)
URL | Date | SRC |
---|---|---|
https://github.com/n8tz/CVE-2022-24999 | 2025-04-29 |
URL | Date | SRC |
---|---|---|
https://github.com/ljharb/qs/pull/428 | 2023-09-08 |
URL | Date | SRC |
---|---|---|
https://access.redhat.com/security/cve/CVE-2022-24999 | 2023-06-15 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2150323 | 2023-06-15 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | < 6.2.4 Search vendor "Qs Project" for product "Qs" and version " < 6.2.4" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | >= 6.3.0 < 6.3.3 Search vendor "Qs Project" for product "Qs" and version " >= 6.3.0 < 6.3.3" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | >= 6.5.0 < 6.5.3 Search vendor "Qs Project" for product "Qs" and version " >= 6.5.0 < 6.5.3" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | >= 6.7.0 < 6.7.3 Search vendor "Qs Project" for product "Qs" and version " >= 6.7.0 < 6.7.3" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | >= 6.8.0 < 6.8.3 Search vendor "Qs Project" for product "Qs" and version " >= 6.8.0 < 6.8.3" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | >= 6.9.0 < 6.9.7 Search vendor "Qs Project" for product "Qs" and version " >= 6.9.0 < 6.9.7" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | >= 6.10.0 < 6.10.3 Search vendor "Qs Project" for product "Qs" and version " >= 6.10.0 < 6.10.3" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | 6.4.0 Search vendor "Qs Project" for product "Qs" and version "6.4.0" | node.js |
Affected
| ||||||
Qs Project Search vendor "Qs Project" | Qs Search vendor "Qs Project" for product "Qs" | 6.6.0 Search vendor "Qs Project" for product "Qs" and version "6.6.0" | node.js |
Affected
| ||||||
Openjsf Search vendor "Openjsf" | Express Search vendor "Openjsf" for product "Express" | < 4.17.3 Search vendor "Openjsf" for product "Express" and version " < 4.17.3" | node.js |
Affected
| ||||||
Debian Search vendor "Debian" | Debian Linux Search vendor "Debian" for product "Debian Linux" | 10.0 Search vendor "Debian" for product "Debian Linux" and version "10.0" | - |
Affected
|