File tree Expand file tree Collapse file tree 4 files changed +4
-8
lines changed
lib/semmle/code/powershell
test/query-tests/security/cwe-078/CommandInjection Expand file tree Collapse file tree 4 files changed +4
-8
lines changed Original file line number Diff line number Diff line change @@ -76,14 +76,14 @@ class CmdCall extends CallExpr, TCmd {
76
76
class CallOperator extends CmdCall {
77
77
CallOperator ( ) { getRawAst ( this ) instanceof Raw:: CallOperator }
78
78
79
- Expr getCommand ( ) { result = this .getArgument ( 0 ) }
79
+ Expr getCommand ( ) { result = this .getCallee ( ) }
80
80
}
81
81
82
82
/** A call to the dot-sourcing `.`. */
83
83
class DotSourcingOperator extends CmdCall {
84
84
DotSourcingOperator ( ) { getRawAst ( this ) instanceof Raw:: DotSourcingOperator }
85
85
86
- Expr getPath ( ) { result = this .getArgument ( 0 ) }
86
+ Expr getPath ( ) { result = this .getCallee ( ) }
87
87
}
88
88
89
89
class JoinPath extends CmdCall {
Original file line number Diff line number Diff line change @@ -605,7 +605,7 @@ module ExprNodes {
605
605
606
606
override CallOperator getExpr ( ) { result = e }
607
607
608
- ExprCfgNode getCommand ( ) { result = this .getArgument ( 0 ) }
608
+ ExprCfgNode getCommand ( ) { result = this .getCallee ( ) }
609
609
}
610
610
611
611
private class ToStringCallChildmapping extends CallExprChildMapping instanceof ToStringCall {
Original file line number Diff line number Diff line change 53
53
| test.ps1:170:36:170:41 | input | test.ps1:129:11:129:20 | userinput | provenance | |
54
54
| test.ps1:172:42:172:47 | input | test.ps1:136:11:136:20 | userinput | provenance | |
55
55
| test.ps1:173:42:173:47 | input | test.ps1:144:11:144:20 | userinput | provenance | |
56
- | test.ps1:214:10:214:32 | Call to read-host | test.ps1:215:16:215:19 | $o | provenance | Src:MaD:0 |
57
56
nodes
58
57
| test.ps1:3:11:3:20 | userinput | semmle.label | userinput |
59
58
| test.ps1:4:23:4:52 | Get-Process -Name $UserInput | semmle.label | Get-Process -Name $UserInput |
@@ -110,8 +109,6 @@ nodes
110
109
| test.ps1:170:36:170:41 | input | semmle.label | input |
111
110
| test.ps1:172:42:172:47 | input | semmle.label | input |
112
111
| test.ps1:173:42:173:47 | input | semmle.label | input |
113
- | test.ps1:214:10:214:32 | Call to read-host | semmle.label | Call to read-host |
114
- | test.ps1:215:16:215:19 | $o | semmle.label | $o |
115
112
subpaths
116
113
#select
117
114
| test.ps1:4:23:4:52 | Get-Process -Name $UserInput | test.ps1:152:10:152:32 | Call to read-host | test.ps1:4:23:4:52 | Get-Process -Name $UserInput | This command depends on a $@. | test.ps1:152:10:152:32 | Call to read-host | user-provided value |
@@ -132,4 +129,3 @@ subpaths
132
129
| test.ps1:131:28:131:37 | UserInput | test.ps1:152:10:152:32 | Call to read-host | test.ps1:131:28:131:37 | UserInput | This command depends on a $@. | test.ps1:152:10:152:32 | Call to read-host | user-provided value |
133
130
| test.ps1:139:50:139:59 | UserInput | test.ps1:152:10:152:32 | Call to read-host | test.ps1:139:50:139:59 | UserInput | This command depends on a $@. | test.ps1:152:10:152:32 | Call to read-host | user-provided value |
134
131
| test.ps1:147:63:147:72 | UserInput | test.ps1:152:10:152:32 | Call to read-host | test.ps1:147:63:147:72 | UserInput | This command depends on a $@. | test.ps1:152:10:152:32 | Call to read-host | user-provided value |
135
- | test.ps1:215:16:215:19 | $o | test.ps1:214:10:214:32 | Call to read-host | test.ps1:215:16:215:19 | $o | This command depends on a $@. | test.ps1:214:10:214:32 | Call to read-host | user-provided value |
Original file line number Diff line number Diff line change @@ -212,5 +212,5 @@ Invoke-InvokeExpressionInjectionSafe4 -UserInput $input
212
212
function false-positive-in-call-operator ($d )
213
213
{
214
214
$o = Read-Host " enter input"
215
- & unzip - o " $o " - d $d # GOOD [FALSE POSITIVE]
215
+ & unzip - o " $o " - d $d # GOOD
216
216
}
You can’t perform that action at this time.
0 commit comments