[invalid CVE]: “Property Injection” in the function merge() CVE-2021-44907
See original GitHub issuemerge() (https://github.com/ljharb/qs/blob/main/dist/qs.js#L670) allows to assign properties on an array in the query. In case of any property being assigned a value the array is converted to an object containing these properties.
Essentially, this means that the property whose expected type is Array always has to be checked with Array.isArray()
by the user, which may not be obvious to the user and can cause unexpected behavior.
While this seems intentional, this behavior is not stressed in documentation.
A couple of simple examples: https://jsfiddle.net/1s7pq93z/1/ https://jsfiddle.net/65jxksay/
The CVE Program has assigned the ID CVE-2021-44907 to this issue. This is a record on the CVE List, which standardizes names for security problems.
Issue Analytics
- State:
- Created 2 years ago
- Comments:28 (13 by maintainers)
Top Results From Across the Web
CVE-2021-44907 | Vulnerability Database - Debricked
[invalid CVE]: “Property Injection” in the function merge() CVE-2021-44907 · Issue #436 · ljharb/qs · GitHub. launch. Github.com.
Read more >Lodash < 4.17.12 Prototype Pollution - Vulners
... js-jquery: prototype pollution in object's prototype leading to denial of service or remote code execution or property injection (CVE-2019-11358)\n\nFor ...
Read more >A querystring parser with nesting support - JsRepos
Some people use comma to join array, qs can parse it: ... [invalid CVE]: “Property Injection” in the function merge() CVE-2021-44907.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Update - just got a reply from my CVE denial request and it looks like they approved the denial. The CVE status should be updated within a few hours. I’m not sure how long it takes GitHub’s advisory database to update its status, but I imagine within 24 hours or so.
I’m confused; why is there a CVE that wasn’t responsibly disclosed first? Filing security issues publicly is insanely irresponsible, and wildly insecure.
Someone who knows how to file a CVE should absolutely know how to follow a security policy.