Why this matters
Using user input to construct system commands can lead to security vulnerabilities, such as command injection. Always validate and sanitize inputs or avoid using them in system commands
Check for occurrences where user input is directly used to construct system commands. This introduces a risk of command injection. Suggest using parameterized queries or safe wrappers instead.
Using user input to construct system commands can lead to security vulnerabilities, such as command injection. Always validate and sanitize inputs or avoid using them in system commands
Side-by-side examples engineers can pattern-match during review.
const { spawn } = require("child_process");
const input = req.query.input;
const proc = spawn("/usr/bin/find", [input]); // Sensitiveconst { spawn } = require("child_process");
const input = req.query.input;
if (allowed.includes(input)) {
const proc = spawn("/usr/bin/find", [input]);
}const { spawn } = require("child_process");
const input = req.query.input;
const proc = spawn("/usr/bin/find", [input]); // Sensitiveconst { spawn } = require("child_process");
const input = req.query.input;
if (allowed.includes(input)) {
const proc = spawn("/usr/bin/find", [input]);
}From the same buckets as this rule.