web3-core-method@1.2.0

Vulnerabilities

1 via 9 paths

Dependencies

48

Source

npm

Find, fix and prevent vulnerabilities in your code.

Severity
  • 1
Status
  • 1
  • 0
  • 0

medium severity

Arbitrary Code Injection

  • Vulnerable module: underscore
  • Introduced through: underscore@1.9.1, web3-utils@1.2.0 and others

Detailed paths

  • Introduced through: web3-core-method@1.2.0 underscore@1.9.1
    Remediation: Upgrade to web3-core-method@1.3.6.
  • Introduced through: web3-core-method@1.2.0 web3-utils@1.2.0 underscore@1.9.1
  • Introduced through: web3-core-method@1.2.0 web3-core-helpers@1.2.0 underscore@1.9.1
  • Introduced through: web3-core-method@1.2.0 web3-core-subscriptions@1.2.0 underscore@1.9.1
  • Introduced through: web3-core-method@1.2.0 web3-core-helpers@1.2.0 web3-utils@1.2.0 underscore@1.9.1
  • Introduced through: web3-core-method@1.2.0 web3-core-subscriptions@1.2.0 web3-core-helpers@1.2.0 underscore@1.9.1
  • Introduced through: web3-core-method@1.2.0 web3-core-helpers@1.2.0 web3-eth-iban@1.2.0 web3-utils@1.2.0 underscore@1.9.1
  • Introduced through: web3-core-method@1.2.0 web3-core-subscriptions@1.2.0 web3-core-helpers@1.2.0 web3-utils@1.2.0 underscore@1.9.1
  • Introduced through: web3-core-method@1.2.0 web3-core-subscriptions@1.2.0 web3-core-helpers@1.2.0 web3-eth-iban@1.2.0 web3-utils@1.2.0 underscore@1.9.1

Overview

underscore is a JavaScript's functional programming helper library.

Affected versions of this package are vulnerable to Arbitrary Code Injection via the template function, particularly when the variable option is taken from _.templateSettings as it is not sanitized.

PoC

const _ = require('underscore');
_.templateSettings.variable = "a = this.process.mainModule.require('child_process').execSync('touch HELLO')";
const t = _.template("")();

Remediation

Upgrade underscore to version 1.13.0-2, 1.12.1 or higher.

References