@@ -8,7 +8,6 @@ private import codeql.ruby.dataflow.RemoteFlowSources
8
8
private import codeql.ruby.ApiGraphs
9
9
private import codeql.ruby.dataflow.internal.DataFlowPublic
10
10
private import codeql.ruby.DataFlow
11
- private import codeql.ruby.dataflow.internal.DataFlowImplForHttpClientLibraries as DataFlowImplForHttpClientLibraries
12
11
13
12
/**
14
13
* A `Net::HTTP` call which initiates an HTTP request.
@@ -88,26 +87,23 @@ class NetHttpRequest extends Http::Client::Request::Range, DataFlow::CallNode {
88
87
override predicate disablesCertificateValidation (
89
88
DataFlow:: Node disablingNode , DataFlow:: Node argumentOrigin
90
89
) {
91
- any ( NetHttpDisablesCertificateValidationConfiguration config )
92
- .hasFlow ( argumentOrigin , disablingNode ) and
90
+ NetHttpDisablesCertificateValidationFlow:: flow ( argumentOrigin , disablingNode ) and
93
91
disablingNode = this .getCertificateValidationControllingValue ( )
94
92
}
95
93
96
94
override string getFramework ( ) { result = "Net::HTTP" }
97
95
}
98
96
99
97
/** A configuration to track values that can disable certificate validation for NetHttp. */
100
- private class NetHttpDisablesCertificateValidationConfiguration extends DataFlowImplForHttpClientLibraries:: Configuration
101
- {
102
- NetHttpDisablesCertificateValidationConfiguration ( ) {
103
- this = "NetHttpDisablesCertificateValidationConfiguration"
104
- }
105
-
106
- override predicate isSource ( DataFlow:: Node source ) {
98
+ private module NetHttpDisablesCertificateValidationConfig implements DataFlow:: ConfigSig {
99
+ predicate isSource ( DataFlow:: Node source ) {
107
100
source = API:: getTopLevelMember ( "OpenSSL" ) .getMember ( "SSL" ) .getMember ( "VERIFY_NONE" ) .asSource ( )
108
101
}
109
102
110
- override predicate isSink ( DataFlow:: Node sink ) {
103
+ predicate isSink ( DataFlow:: Node sink ) {
111
104
sink = any ( NetHttpRequest req ) .getCertificateValidationControllingValue ( )
112
105
}
113
106
}
107
+
108
+ private module NetHttpDisablesCertificateValidationFlow =
109
+ DataFlow:: Global< NetHttpDisablesCertificateValidationConfig > ;
0 commit comments