File tree Expand file tree Collapse file tree
powershell/ql/src/queries/security/cwe-078 Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <!DOCTYPE qhelp PUBLIC
2+ "-//Semmle//qhelp//EN"
3+ "qhelp.dtd">
4+ <qhelp >
5+ <overview >
6+ <p >Code that passes user input directly to
7+ <code >Invoke-Expression</code >, <code >& </code >, or some other library
8+ routine that executes a command, allows the user to execute malicious
9+ code.</p >
10+
11+ </overview >
12+ <recommendation >
13+
14+ <p >If possible, use hard-coded string literals to specify the command to run
15+ or library to load. Instead of passing the user input directly to the
16+ process or library function, examine the user input and then choose
17+ among hard-coded string literals.</p >
18+
19+ <p >If the applicable libraries or commands cannot be determined at
20+ compile time, then add code to verify that the user input string is
21+ safe before using it.</p >
22+
23+ </recommendation >
24+ <example >
25+
26+ <p >The following example shows code that takes a shell script that can be changed
27+ maliciously by a user, and passes it straight to <code >Invoke-Expression</code >
28+ without examining it first.</p >
29+
30+ <sample src =" examples/command_injection.ps1" />
31+
32+ </example >
33+ <references >
34+
35+ <li >
36+ OWASP:
37+ <a href =" https://www.owasp.org/index.php/Command_Injection" >Command Injection</a >.
38+ </li >
39+
40+ <!-- LocalWords: CWE untrusted unsanitized Runtime
41+ -->
42+
43+ </references >
44+ </qhelp >
Original file line number Diff line number Diff line change 1+ param ($x )
2+
3+ Invoke-Expression - Command " Get-Process -Id $x "
You can’t perform that action at this time.
0 commit comments