Skip to content

Commit 1cb059c

Browse files
committed
PS: Fixup 'powershell/command-injection' so that it compiles after all the AST name changes.
1 parent c2bdc7a commit 1cb059c

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

powershell/ql/src/experimental/CommandInjection.ql

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,48 +10,48 @@
1010

1111
import powershell
1212

13-
predicate containsScope(VariableExpression outer, VariableExpression inner) {
13+
predicate containsScope(VarAccess outer, VarAccess inner) {
1414
outer.getUserPath() = inner.getUserPath() and
1515
outer != inner
1616
}
1717

18-
predicate constantTernaryExpression(TernaryExpression ternary) {
18+
predicate constantTernaryExpression(ConditionalExpr ternary) {
1919
onlyConstantExpressions(ternary.getIfTrue()) and onlyConstantExpressions(ternary.getIfFalse())
2020
}
2121

22-
predicate constantBinaryExpression(BinaryExpression binary) {
23-
onlyConstantExpressions(binary.getLeftHandSide()) and onlyConstantExpressions(binary.getRightHandSide())
22+
predicate constantBinaryExpression(BinaryExpr binary) {
23+
onlyConstantExpressions(binary.getLeft()) and onlyConstantExpressions(binary.getRight())
2424
}
2525

26-
predicate onlyConstantExpressions(Expression expr){
27-
expr instanceof StringConstantExpression or constantBinaryExpression(expr) or constantTernaryExpression(expr)
26+
predicate onlyConstantExpressions(Expr expr){
27+
expr instanceof StringConstExpression or constantBinaryExpression(expr) or constantTernaryExpression(expr)
2828
}
2929

30-
VariableExpression getNonConstantVariableAssignment(VariableExpression varexpr) {
30+
VarAccess getNonConstantVariableAssignment(VarAccess varexpr) {
3131
(
32-
exists(AssignmentStatement assignment |
33-
not onlyConstantExpressions(assignment.getRightHandSide().(CommandExpression).getExpression()) and
32+
exists(AssignStmt assignment |
33+
not onlyConstantExpressions(assignment.getRightHandSide().(CmdExpr).getExpr()) and
3434
result = assignment.getLeftHandSide()
3535
)
3636
) and
3737
containsScope(result, varexpr)
3838
}
3939

40-
VariableExpression getParameterWithVariableScope(VariableExpression varexpr) {
40+
VarAccess getParameterWithVariableScope(VarAccess varexpr) {
4141
exists(Parameter parameter |
4242
result = parameter.getName() and
4343
containsScope(result, varexpr)
4444
)
4545
}
4646

47-
Expression getAllSubExpressions(Expression expr)
47+
Expr getAllSubExpressions(Expr expr)
4848
{
4949
result = expr or
5050
result = getAllSubExpressions(expr.(ArrayLiteral).getAnElement()) or
51-
result = getAllSubExpressions(expr.(ArrayExpression).getStatementBlock().getAStatement().(Pipeline).getAComponent().(CommandExpression).getExpression())
51+
result = getAllSubExpressions(expr.(ArrayExpr).getStatementBlock().getAStatement().(Pipeline).getAComponent().(CmdExpr).getExpr())
5252
}
5353

54-
Expression dangerousCommandElement(Command command)
54+
Expr dangerousCommandElement(Cmd command)
5555
{
5656
(
5757
command.getKind() = 28 or
@@ -60,15 +60,15 @@ Expression dangerousCommandElement(Command command)
6060
result = getAllSubExpressions(command.getAnElement())
6161
}
6262

63-
from Expression commandarg, VariableExpression unknownDeclaration
63+
from Expr commandarg, VarAccess unknownDeclaration
6464
where
65-
exists(Command command |
65+
exists(Cmd command |
6666
(
6767
unknownDeclaration = getNonConstantVariableAssignment(commandarg) or
6868
unknownDeclaration = getParameterWithVariableScope(commandarg)
6969
)
7070
and
7171
commandarg = dangerousCommandElement(command)
7272
)
73-
select commandarg.(VariableExpression).getLocation(), "Unsafe flow to command argument from $@.",
73+
select commandarg.(VarAccess).getLocation(), "Unsafe flow to command argument from $@.",
7474
unknownDeclaration, unknownDeclaration.getUserPath()

0 commit comments

Comments
 (0)