@@ -7,7 +7,6 @@ private import codeql.ruby.CFG
7
7
private import codeql.ruby.Concepts
8
8
private import codeql.ruby.ApiGraphs
9
9
private import codeql.ruby.DataFlow
10
- private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries
11
10
12
11
/**
13
12
* A call that makes an HTTP request using `Typhoeus`.
@@ -38,26 +37,21 @@ class TyphoeusHttpRequest extends Http::Client::Request::Range, DataFlow::CallNo
38
37
override predicate disablesCertificateValidation (
39
38
DataFlow:: Node disablingNode , DataFlow:: Node argumentOrigin
40
39
) {
41
- any ( TyphoeusDisablesCertificateValidationConfiguration config )
42
- .hasFlow ( argumentOrigin , disablingNode ) and
40
+ TyphoeusDisablesCertificateValidationFlow:: flow ( argumentOrigin , disablingNode ) and
43
41
disablingNode = this .getCertificateValidationControllingValue ( )
44
42
}
45
43
46
44
override string getFramework ( ) { result = "Typhoeus" }
47
45
}
48
46
49
47
/** A configuration to track values that can disable certificate validation for Typhoeus. */
50
- private class TyphoeusDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries:: Configuration
51
- {
52
- TyphoeusDisablesCertificateValidationConfiguration ( ) {
53
- this = "TyphoeusDisablesCertificateValidationConfiguration"
54
- }
55
-
56
- override predicate isSource ( DataFlow:: Node source ) {
57
- source .asExpr ( ) .getExpr ( ) .( BooleanLiteral ) .isFalse ( )
58
- }
48
+ private module TyphoeusDisablesCertificateValidationConfig implements DataFlow:: ConfigSig {
49
+ predicate isSource ( DataFlow:: Node source ) { source .asExpr ( ) .getExpr ( ) .( BooleanLiteral ) .isFalse ( ) }
59
50
60
- override predicate isSink ( DataFlow:: Node sink ) {
51
+ predicate isSink ( DataFlow:: Node sink ) {
61
52
sink = any ( TyphoeusHttpRequest req ) .getCertificateValidationControllingValue ( )
62
53
}
63
54
}
55
+
56
+ private module TyphoeusDisablesCertificateValidationFlow =
57
+ DataFlow:: Global< TyphoeusDisablesCertificateValidationConfig > ;
0 commit comments