Skip to content

Commit 6bf1e87

Browse files
committed
Remove CSV sinks; make imports private
1 parent 91f4662 commit 6bf1e87

File tree

3 files changed

+10
-21
lines changed

3 files changed

+10
-21
lines changed

java/ql/src/Security/CWE/CWE-094/SpelInjection.ql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import java
1414
import semmle.code.java.security.SpelInjectionQuery
15+
import semmle.code.java.dataflow.DataFlow
1516
import DataFlow::PathGraph
1617

1718
from DataFlow::PathNode source, DataFlow::PathNode sink, SpelInjectionConfig conf

java/ql/src/semmle/code/java/security/SpelInjection.qll

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,13 @@
11
/** Provides classes to reason about SpEL injection attacks. */
22

33
import java
4-
import semmle.code.java.dataflow.DataFlow
5-
import semmle.code.java.dataflow.ExternalFlow
6-
import semmle.code.java.frameworks.spring.SpringExpression
4+
private import semmle.code.java.dataflow.DataFlow
5+
private import semmle.code.java.dataflow.ExternalFlow
6+
private import semmle.code.java.frameworks.spring.SpringExpression
77

88
/** A data flow sink for unvalidated user input that is used to construct SpEL expressions. */
99
abstract class SpelExpressionEvaluationSink extends DataFlow::ExprNode { }
1010

11-
private class SpelExpressionEvaluationModel extends SinkModelCsv {
12-
override predicate row(string row) {
13-
row =
14-
[
15-
"org.springframework.expression;Expression;true;getValue;;;Argument[-1];spel",
16-
"org.springframework.expression;Expression;true;getValueTypeDescriptor;;;Argument[-1];spel",
17-
"org.springframework.expression;Expression;true;getValueType;;;Argument[-1];spel",
18-
"org.springframework.expression;Expression;true;setValue;;;Argument[-1];spel"
19-
]
20-
}
21-
}
22-
2311
/**
2412
* A unit class for adding additional taint steps.
2513
*

java/ql/src/semmle/code/java/security/SpelInjectionQuery.qll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/** Provides taint tracking and dataflow configurations to be used in SpEL injection queries. */
22

33
import java
4-
import semmle.code.java.dataflow.DataFlow
5-
import semmle.code.java.dataflow.FlowSources
6-
import semmle.code.java.frameworks.spring.SpringExpression
7-
import semmle.code.java.security.SpelInjection
4+
private import semmle.code.java.dataflow.FlowSources
5+
private import semmle.code.java.dataflow.TaintTracking
6+
private import semmle.code.java.frameworks.spring.SpringExpression
7+
private import semmle.code.java.security.SpelInjection
88

99
/**
1010
* A taint-tracking configuration for unsafe user input
@@ -26,8 +26,8 @@ class SpelInjectionConfig extends TaintTracking::Configuration {
2626
private class DefaultSpelExpressionEvaluationSink extends SpelExpressionEvaluationSink {
2727
DefaultSpelExpressionEvaluationSink() {
2828
exists(MethodAccess ma |
29-
sinkNode(this, "spel") and
30-
this.asExpr() = ma.getQualifier() and
29+
ma.getMethod() instanceof ExpressionEvaluationMethod and
30+
ma.getQualifier() = this.asExpr() and
3131
not exists(SafeEvaluationContextFlowConfig config |
3232
config.hasFlowTo(DataFlow::exprNode(ma.getArgument(0)))
3333
)

0 commit comments

Comments
 (0)