Prototype Pollution Protection Bypass in qs
Affected releases · qs
- 6.x6.0.0 – 6.3.1Fixed in 6.3.2
- 5.x and older0.0.1 – 5.2.1No fix, no longer updated
On 6.x, the newest line:
npm install qs@6.3.2Every release on a timeline
Affected
6.0.0 – 6.0.3
4 releases
Fixed
6.0.4 – 6.0.6
3 releases
Affected
6.1.0 – 6.1.1
2 releases
Fixed
6.1.2 – 6.1.4
3 releases
Affected
6.2.0 – 6.2.2
3 releases
Fixed
6.2.3 – 6.2.6
4 releases
Affected
6.3.0 – 6.3.1
2 releases
Fixed
6.3.2 – 6.17.1
79 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
Affected version of qs are vulnerable to Prototype Pollution because it is possible to bypass the protection. The qs.parse function fails to properly prevent an object's prototype to be altered when parsing arbitrary input. Input containing [ or ] may bypass the prototype pollution protection and alter the Object prototype. This allows attackers to override properties that will exist in all objects, which may lead to Denial of Service or Remote Code Execution in specific circumstances.
Recommendation
Upgrade to 6.0.4, 6.1.2, 6.2.3, 6.3.2 or later.