Skip to content

Commit cc48cec

Browse files
committed
Java: Deprecate experimental model activation.
1 parent e3997f6 commit cc48cec

File tree

6 files changed

+17
-9
lines changed

6 files changed

+17
-9
lines changed

java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ private import codeql.mad.ModelValidation as SharedModelVal
104104
* Extend this class to include experimental model rows with `this` name
105105
* in data flow analysis.
106106
*/
107-
abstract class ActiveExperimentalModels extends string {
107+
abstract private class ActiveExperimentalModelsInternal extends string {
108108
bindingset[this]
109-
ActiveExperimentalModels() { any() }
109+
ActiveExperimentalModelsInternal() { any() }
110110

111111
/**
112112
* Holds if an experimental source model exists for the given parameters.
@@ -142,6 +142,8 @@ abstract class ActiveExperimentalModels extends string {
142142
}
143143
}
144144

145+
deprecated class ActiveExperimentalModels = ActiveExperimentalModelsInternal;
146+
145147
/** Holds if a source model exists for the given parameters. */
146148
predicate sourceModel(
147149
string package, string type, boolean subtypes, string name, string signature, string ext,
@@ -151,7 +153,7 @@ predicate sourceModel(
151153
Extensions::sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance,
152154
madId)
153155
or
154-
any(ActiveExperimentalModels q)
156+
any(ActiveExperimentalModelsInternal q)
155157
.sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, madId)
156158
)
157159
}
@@ -165,7 +167,7 @@ predicate sinkModel(
165167
Extensions::sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance,
166168
madId)
167169
or
168-
any(ActiveExperimentalModels q)
170+
any(ActiveExperimentalModelsInternal q)
169171
.sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId)
170172
)
171173
}
@@ -179,7 +181,7 @@ predicate summaryModel(
179181
Extensions::summaryModel(package, type, subtypes, name, signature, ext, input, output, kind,
180182
provenance, madId)
181183
or
182-
any(ActiveExperimentalModels q)
184+
any(ActiveExperimentalModelsInternal q)
183185
.summaryModel(package, type, subtypes, name, signature, ext, input, output, kind,
184186
provenance, madId)
185187
)

java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ extensible predicate neutralModel(
3434
);
3535

3636
/**
37+
* DEPRECATED: Do not use.
38+
*
3739
* Holds if an experimental source model exists for the given parameters.
3840
* This is only for experimental queries.
3941
*/
@@ -43,6 +45,8 @@ extensible predicate experimentalSourceModel(
4345
);
4446

4547
/**
48+
* DEPRECATED: Do not use.
49+
*
4650
* Holds if an experimental sink model exists for the given parameters.
4751
* This is only for experimental queries.
4852
*/
@@ -52,6 +56,8 @@ extensible predicate experimentalSinkModel(
5256
);
5357

5458
/**
59+
* DEPRECATED: Do not use.
60+
*
5561
* Holds if an experimental summary model exists for the given parameters.
5662
* This is only for experimental queries.
5763
*/

java/ql/src/experimental/Security/CWE/CWE-020/Log4jJndiInjection.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import semmle.code.java.dataflow.ExternalFlow
2222
private import semmle.code.java.security.Sanitizers
2323
import Log4jInjectionFlow::PathGraph
2424

25-
private class ActivateModels extends ActiveExperimentalModels {
25+
deprecated private class ActivateModels extends ActiveExperimentalModels {
2626
ActivateModels() { this = "log4j-injection" }
2727
}
2828

java/ql/src/experimental/Security/CWE/CWE-036/OpenStream.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import semmle.code.java.dataflow.FlowSources
1717
import semmle.code.java.dataflow.ExternalFlow
1818
import RemoteUrlToOpenStreamFlow::PathGraph
1919

20-
private class ActivateModels extends ActiveExperimentalModels {
20+
deprecated private class ActivateModels extends ActiveExperimentalModels {
2121
ActivateModels() { this = "openstream-called-on-tainted-url" }
2222
}
2323

java/ql/src/experimental/Security/CWE/CWE-073/FilePathInjection.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import semmle.code.java.security.PathSanitizer
2222
private import semmle.code.java.security.Sanitizers
2323
import InjectFilePathFlow::PathGraph
2424

25-
private class ActivateModels extends ActiveExperimentalModels {
25+
deprecated private class ActivateModels extends ActiveExperimentalModels {
2626
ActivateModels() { this = "file-path-injection" }
2727
}
2828

java/ql/src/experimental/Security/CWE/CWE-078/ExecTainted.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import semmle.code.java.security.CommandLineQuery
1818
import InputToArgumentToExecFlow::PathGraph
1919
private import semmle.code.java.dataflow.ExternalFlow
2020

21-
private class ActivateModels extends ActiveExperimentalModels {
21+
deprecated private class ActivateModels extends ActiveExperimentalModels {
2222
ActivateModels() { this = "jsch-os-injection" }
2323
}
2424

0 commit comments

Comments
 (0)