Skip to content

Commit e880a5f

Browse files
committed
Refactor UnsafeTlsVersion
1 parent e3f6bc0 commit e880a5f

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

java/ql/src/experimental/Security/CWE/CWE-327/SslLib.qll

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
11
import java
22
import semmle.code.java.security.Encryption
33
import semmle.code.java.dataflow.TaintTracking
4-
import DataFlow
5-
import PathGraph
64

75
/**
86
* A taint-tracking configuration for unsafe SSL and TLS versions.
97
*/
10-
class UnsafeTlsVersionConfig extends TaintTracking::Configuration {
11-
UnsafeTlsVersionConfig() { this = "UnsafeTlsVersion::UnsafeTlsVersionConfig" }
8+
module UnsafeTlsVersionConfig implements DataFlow::ConfigSig {
9+
predicate isSource(DataFlow::Node source) { source.asExpr() instanceof UnsafeTlsVersion }
1210

13-
override predicate isSource(DataFlow::Node source) { source.asExpr() instanceof UnsafeTlsVersion }
14-
15-
override predicate isSink(DataFlow::Node sink) {
11+
predicate isSink(DataFlow::Node sink) {
1612
sink instanceof SslContextGetInstanceSink or
1713
sink instanceof CreateSslParametersSink or
1814
sink instanceof SslParametersSetProtocolsSink or
1915
sink instanceof SetEnabledProtocolsSink
2016
}
2117
}
2218

19+
module UnsafeTlsVersionFlow = TaintTracking::Global<UnsafeTlsVersionConfig>;
20+
2321
/**
2422
* A sink that sets protocol versions in `SSLContext`,
2523
* i.e `SSLContext.getInstance(protocol)`.

java/ql/src/experimental/Security/CWE/CWE-327/UnsafeTlsVersion.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313

1414
import java
1515
import SslLib
16-
import DataFlow::PathGraph
16+
import UnsafeTlsVersionFlow::PathGraph
1717

18-
from DataFlow::PathNode source, DataFlow::PathNode sink, UnsafeTlsVersionConfig conf
19-
where conf.hasFlowPath(source, sink)
18+
from UnsafeTlsVersionFlow::PathNode source, UnsafeTlsVersionFlow::PathNode sink
19+
where UnsafeTlsVersionFlow::flowPath(source, sink)
2020
select sink.getNode(), source, sink, "$@ is unsafe.", source.getNode(),
2121
source.getNode().asExpr().(StringLiteral).getValue()

0 commit comments

Comments
 (0)