File tree Expand file tree Collapse file tree 2 files changed +47
-0
lines changed
powershell/ql/src/queries/security/cwe-078 Expand file tree Collapse file tree 2 files changed +47
-0
lines changed 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