This affects the package immer before 9.0.6. A type confusion vulnerability can lead to a bypass of CVE-2020-28477 when the user-provided keys used in the path parameter are arrays. In particular, this bypass is possible because the condition (p === "__proto__" || p === "constructor") in applyPatches_ returns false if p is ['__proto__'] (or ['constructor']). The === operator (strict equality operator) returns false if the operands have different type.
{
"github_reviewed": true,
"nvd_published_at": "2021-09-01T18:15:00Z",
"severity": "CRITICAL",
"github_reviewed_at": "2021-09-02T16:57:31Z",
"cwe_ids": [
"CWE-1321",
"CWE-843"
]
}