Skip to content
OpenAdvisories
High · 7.5 Public exploit CVE-2022-24999 EUVD-2022-7366GHSA-hrpp-h998-j3pp

qs vulnerable to Prototype Pollution

Published Nov 26, 2022 · Updated Apr 29, 2025 · Assigned by mitre

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).

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 node-qs 6.10.3+ds+~6.9.7-1 —
Debian 13 node-qs 6.10.3+ds+~6.9.7-1 —
Debian 12 node-qs 6.10.3+ds+~6.9.7-1 —
Debian 10 node-qs 6.5.2-1+deb10u1 DLA-3299-1
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS node-express 4.17.1-2ubuntu0.1~esm2 —
Ubuntu Pro 20.04 LTS node-qs 6.9.1+ds-1ubuntu0.1~esm1 USN-7693-1
ReleasePackageFixed inAdvisory
RHEL 8 nodejs +3 1:14.21.1-2.module+el8.7.0+17528+a329cd47 RHSA-2023:0050
RHEL 8 nodejs-nodemon 2.0.20-2.module+el8.7.0+17528+a329cd47 RHSA-2023:0050
RHEL 8 nodejs-packaging 23-3.module+el8.3.0+6519+9f98ed83 RHSA-2023:0050
RHEL 8 npm 1:6.14.17-1.14.21.1.2.module+el8.7.0+17528+a329cd47 RHSA-2023:0050
RHEL 3 rh-nodejs14-nodejs +3 14.21.1-3.el7 RHSA-2023:0612
RHEL 3 rh-nodejs14-nodejs-nodemon 2.0.20-2.el7 RHSA-2023:0612
RHEL 3 rh-nodejs14-npm 6.14.17-14.21.1.3.el7 RHSA-2023:0612
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 8.6 EUS nodejs +3 1:14.21.3-1.module+el8.6.0+18532+cbe6f646 RHSA-2023:1742
RHEL 8.6 EUS nodejs-nodemon 2.0.20-3.module+el8.6.0+18532+cbe6f646 RHSA-2023:1742
RHEL 8.6 EUS nodejs-packaging 23-3.module+el8.3.0+6519+9f98ed83 RHSA-2023:1742
RHEL 8.6 EUS npm 1:6.14.18-1.14.21.3.1.module+el8.6.0+18532+cbe6f646 RHSA-2023:1742
RHEL 8.4 EUS nodejs +3 1:14.21.3-1.module+el8.4.0+18317+43f5ac16 RHSA-2023:1533
RHEL 8.4 EUS nodejs-nodemon 2.0.20-3.module+el8.4.0+18317+43f5ac16 RHSA-2023:1533
RHEL 8.4 EUS nodejs-packaging 23-3.module+el8.3.0+6519+9f98ed83 RHSA-2023:1533
RHEL 8.4 EUS npm 1:6.14.18-1.14.21.3.1.module+el8.4.0+18317+43f5ac16 RHSA-2023:1533

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 8 nodejs +3 1:14.21.1-2.module_el8.7.0+3373+a4c18c43 ALSA-2023:0050
AlmaLinux 8 nodejs-nodemon 2.0.20-2.module_el8.7.0+3373+a4c18c43 ALSA-2023:0050
AlmaLinux 8 nodejs-packaging 23-3.module_el8.4.0+2522+3bd42762 ALSA-2023:0050
AlmaLinux 8 npm 1:6.14.17-1.14.21.1.2.module_el8.7.0+3373+a4c18c43 ALSA-2023:0050

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 8 nodejs 1:14.21.1-2.module+el8.7.0+1116+bd2a84b4 RLSA-2023:0050
Rocky Linux 8 nodejs-nodemon 2.0.20-2.module+el8.7.0+1108+49363b0d RLSA-2023:0050
Rocky Linux 8 nodejs-packaging 23-3.module+el8.3.0+100+234774f7 RLSA-2023:0050

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 js-jquery +1 No fix yet —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 8 nodejs +3 1:14.21.1-2.module+el8.7.0+20895+79a25710 ELSA-2023-0050
Oracle Linux 8 nodejs-nodemon 2.0.20-2.module+el8.7.0+20895+79a25710 ELSA-2023-0050
Oracle Linux 8 nodejs-packaging 23-3.module+el8.3.0+7818+6cd30d85 ELSA-2023-0050
Oracle Linux 8 npm 1:6.14.17-1.14.21.1.2.module+el8.7.0+20895+79a25710 ELSA-2023-0050

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
npm qs >= 6.10.0, < 6.10.3 6.10.3 GHSA-hrpp-h998-j3pp
npm qs >= 6.9.0, < 6.9.7 6.9.7 GHSA-hrpp-h998-j3pp
npm qs >= 6.8.0, < 6.8.3 6.8.3 GHSA-hrpp-h998-j3pp
npm qs >= 6.7.0, < 6.7.3 6.7.3 GHSA-hrpp-h998-j3pp
npm qs >= 6.6.0, < 6.6.1 6.6.1 GHSA-hrpp-h998-j3pp
npm qs >= 6.5.0, < 6.5.3 6.5.3 GHSA-hrpp-h998-j3pp
npm qs >= 6.4.0, < 6.4.1 6.4.1 GHSA-hrpp-h998-j3pp
npm qs >= 6.3.0, < 6.3.3 6.3.3 GHSA-hrpp-h998-j3pp
npm qs < 6.2.4 6.2.4 GHSA-hrpp-h998-j3pp

Advisories 17

References