{"id":"CVE-2020-6836","aliases":["EUVD-2020-0442","GHSA-rc77-xxq6-4mff"],"status":"published","title":"Command Injection in hot-formula-parser","description":"grammar-parser.jison in the hot-formula-parser package before 3.0.1 for Node.js is vulnerable to arbitrary code injection. The package fails to sanitize values passed to the parse function and concatenates them in an eval call. If a value of the formula is taken from user-controlled input, it may allow attackers to run arbitrary commands on the server.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.02148,"percentile":0.82239,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-94"],"published":"2020-01-11T00:42:28Z","modified":"2026-10-20T10:54:23Z","fixes":[{"ecosystem":"npm","package":"hot-formula-parser","fixed_in":["3.0.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"hot-formula-parser","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.0.1"}]}]},{"source":"osv","ecosystem":"npm","package":"hot-formula-parser","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.0.1"}]}]}],"products":[{"vendor":"hot-formula-parser_project","product":"hot-formula-parser"}],"references":[{"url":"https://www.npmjs.com/advisories/1439","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/handsontable/formula-parser/commit/396b089738d4bf30eb570a4fe6a188affa95cd5e","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://blog.truesec.com/2020/01/17/reverse-shell-through-a-node-js-math-parser/","tags":["x_refsource_MISC","x_transferred","article"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-6836","tags":["advisory"]},{"url":"https://github.com/handsontable/formula-parser/pull/58","tags":["web"]},{"url":"https://github.com/advisories/GHSA-rc77-xxq6-4mff"},{"url":"https://blog.truesec.com/2020/01/17/reverse-shell-through-a-node-js-math-parser","tags":["web"]},{"url":"https://github.com/handsontable/formula-parser","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-6836","description":"grammar-parser.jison in the hot-formula-parser package before 3.0.1 for Node.js is vulnerable to arbitrary code injection. The package fails to sanitize values passed to the parse function and concatenates them in an eval call. If a value of the formula is taken from user-controlled input, it may allow attackers to run arbitrary commands on the server.","status":"published","published":"2020-01-11T00:42:28Z","modified":"2024-08-04T09:11:05.148Z","updated_at":"2026-11-02T14:35:52.268457Z"}],"euvd":[{"id":"EUVD-2020-0442","description":"grammar-parser.jison in the hot-formula-parser package before 3.0.1 for Node.js is vulnerable to arbitrary code injection. The package fails to sanitize values passed to the parse function and concatenates them in an eval call. If a value of the formula is taken from user-controlled input, it may allow attackers to run arbitrary commands on the server.","status":"published","published":"2020-01-11T00:42:28Z","modified":"2024-08-04T09:11:05Z","updated_at":"2026-11-03T03:08:01.566283Z"}],"ghsa":[{"id":"GHSA-rc77-xxq6-4mff","title":"Command Injection in hot-formula-parser","description":"Versions of `hot-formula-parser` prior to 3.0.1 are vulnerable to Command Injection. The package fails to sanitize values passed to the  `parse` function and concatenates it in an `eval` call. If a value of the formula is supplied by user-controlled input it may allow attackers to run arbitrary commands in the server.  \nParsing the following formula creates a `test` file in the present directory:  \n`\"SUM([(function(){require('child_process').execSync('touch test')})(),2])\"`\n\n\n## Recommendation\n\nUpgrade to version 3.0.1 or later.","status":"published","published":"2020-05-06T19:32:33Z","modified":"2023-01-09T05:02:15Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:36:03.040255Z"}],"nvd":[{"id":"CVE-2020-6836","description":"grammar-parser.jison in the hot-formula-parser package before 3.0.1 for Node.js is vulnerable to arbitrary code injection. The package fails to sanitize values passed to the parse function and concatenates them in an eval call. If a value of the formula is taken from user-controlled input, it may allow attackers to run arbitrary commands on the server.","status":"published","published":"2020-01-11T01:15:10.73Z","modified":"2026-06-17T03:23:53.66Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:05:52.385274Z"}],"osv":[{"id":"CVE-2020-6836","description":"grammar-parser.jison in the hot-formula-parser package before 3.0.1 for Node.js is vulnerable to arbitrary code injection. The package fails to sanitize values passed to the parse function and concatenates them in an eval call. If a value of the formula is taken from user-controlled input, it may allow attackers to run arbitrary commands on the server.","status":"published","published":"2020-01-11T01:15:10.73Z","modified":"2026-10-20T10:54:23.705475973Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:44:17.34531Z"},{"id":"GHSA-rc77-xxq6-4mff","title":"Command Injection in hot-formula-parser","description":"Versions of `hot-formula-parser` prior to 3.0.1 are vulnerable to Command Injection. The package fails to sanitize values passed to the  `parse` function and concatenates it in an `eval` call. If a value of the formula is supplied by user-controlled input it may allow attackers to run arbitrary commands in the server.  \nParsing the following formula creates a `test` file in the present directory:  \n`\"SUM([(function(){require('child_process').execSync('touch test')})(),2])\"`\n\n\n## Recommendation\n\nUpgrade to version 3.0.1 or later.","status":"published","published":"2020-05-06T19:32:33Z","modified":"2023-11-08T04:03:57.359747Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T15:46:55.877614Z"}]}}
