Last tested: 31 Jul, 2018

config vulnerabilities

Configuration control for production node deployments

View on npm

config (latest)

Published 30 Jul, 2018

Known vulnerabilities0
Vulnerable paths0
Dependencies2

No known vulnerabilities in config

Security wise, config seems to be a safe package to use.
Over time, new vulnerabilities may be disclosed on config and other packages. To easily find, fix and prevent such vulnerabilties, protect your repos with Snyk!

Vulnerable versions of config

Fixed in 0.4.18

Code Execution due to Deserialization

medium severity

Detailed paths

  • Introduced through: config@0.4.17 > js-yaml@0.3.7

Overview

The JS-YAML module for Node.js contained a code execution vulnerability prior to version 2.0.5. The maintainers of JS-YAML have patched this vulnerability and, beginning in version 2.1.0, have provided a safeLoad method for parsing YAML. Developers that use this module should make sure they have upgraded and should strongly consider porting their code to use the new safeLoad method.

Source: Node Security Project

Details

The module allowed code execution due to a custom data-type that it defined and parsed called !!js/function. The way it would parse the data was to create a new Function object in JavaScript based on the input, which is equivalent to calling eval on the input:

function resolveJavascriptFunction(object /*, explicit*/) {
  /*jslint evil:true*/
  var func;

  try {
    func = new Function('return ' + object);
    return func();
  } catch (error) {
    return NIL;
  }
}

That meant the code snippet below, when run, would execute code instead of simply defining a function:

var yaml = require('js-yaml');

x = "test: !!js/function > \n  \
function f() { \n    \
console.log(1); \n  \
}();"

yaml.load(x);

Remediation

Developers using the JS-YAML module should make sure that they are working with an up-to-date version and should strongly consider porting their code to use safeLoad in place of load, especially when accepting YAML derived from user input.

References