Prototype Pollution Affecting predefine package, versions >=0.0.0 <0.1.3


0.0
high

Snyk CVSS

    Attack Complexity Low
    Availability High

    Threat Intelligence

    Exploit Maturity Proof of concept
    EPSS 1.07% (85th percentile)
Expand this section
NVD
9.8 critical

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk ID SNYK-JS-PREDEFINE-1054935
  • published 30 Dec 2020
  • disclosed 30 Dec 2020
  • credit ohad2712

How to fix?

Upgrade predefine to version 0.1.3 or higher.

Overview

predefine is a Predefine your Object.defineProperties to create a more human readable API.

Affected versions of this package are vulnerable to Prototype Pollution. It allows an attacker to cause a denial of service and may lead to remote code execution.

PoC:

const predefine = require('predefine');
predefine.merge({}, JSON.parse('{"__proto__": {"a": "b"}}'));

console.log(({}).a === 'b' ? 'exploitable' : 'unexploitable'); // exploitable