qs vulnerable to Prototype Pollution
Affected releases · qs
- 6.x6.0.0 – 6.10.2Fixed in 6.10.3
- 5.x and older0.0.1 – 5.2.1No fix, no longer updated
On 6.x, the newest line:
npm install qs@6.10.3Every release on a timeline
Affected
6.0.0 – 6.2.3
16 releases
Fixed
6.2.4 – 6.2.6
3 releases
Affected
6.3.0 – 6.3.2
3 releases
Fixed
6.3.3 – 6.3.5
3 releases
Affected
6.4.0
1 release
Fixed
6.4.1 – 6.4.3
3 releases
Affected
6.5.0 – 6.5.2
3 releases
Fixed
6.5.3 – 6.5.5
3 releases
Affected
6.6.0
1 release
Fixed
6.6.1 – 6.6.3
3 releases
Affected
6.7.0 – 6.7.2
3 releases
Fixed
6.7.3 – 6.7.5
3 releases
Affected
6.8.0 – 6.8.2
3 releases
Fixed
6.8.3 – 6.8.5
3 releases
Affected
6.9.0 – 6.9.6
7 releases
Fixed
6.9.7 – 6.9.9
3 releases
Affected
6.10.0 – 6.10.2
3 releases
Fixed
6.10.3 – 6.17.1
36 releases, latest
Affected
5.0.0 – 5.2.1
4 releases
Affected
4.0.0
1 release
Affected
3.0.0 – 3.1.0
2 releases
Affected
2.0.0 – 2.4.2
15 releases
Affected
1.0.0 – 1.2.2
7 releases
Affected
0.0.1 – 0.6.6
29 releases
What happens
qs before 6.10.3 allows attackers to cause a Node process hang because an __ proto__ key can be used. In many typical web framework 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.