Skip to main content

Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

CVE-2022-21190

Severity High
Score 9.8/10

Summary

Prototype Pollution vulnerability in the package convict versions prior to 6.2.3. This is a bypass of CVE-2022-22143. The fix introduced relies on the `startsWith` method and does not prevent the vulnerability: before splitting the path, it checks if it starts with `__proto__` or `this.constructor.prototype`. To bypass this check, it's possible to prepend the dangerous paths with any string value followed by a dot, like for example `foo.__proto__` or `foo.this.constructor.prototype`.

  • LOW
  • NETWORK
  • HIGH
  • UNCHANGED
  • NONE
  • NONE
  • HIGH
  • HIGH

CWE-1321 - Prototype Pollution

Prototype pollution is one of the lesser-known vulnerabilities. It allows attackers to abuse the rules of JavaScript by injecting properties into the general object “Object” in JS. Modifying the prototype of “Object” affects the behavior of all objects in the entire app, potentially resulting in denial of service, arbitrary code execution, cross-site scripting, etc.

Advisory Timeline

  • Published