File tree Expand file tree Collapse file tree
semmle/code/java/dataflow Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ import java
1313import semmle.code.java.dataflow.TaintTracking
1414import semmle.code.java.frameworks.Networking
1515import DataFlow:: PathGraph
16+ private import semmle.code.java.dataflow.ExternalFlow
1617
1718class HTTPString extends StringLiteral {
1819 HTTPString ( ) {
@@ -30,26 +31,12 @@ class HTTPString extends StringLiteral {
3031 }
3132}
3233
33- class URLOpenMethod extends Method {
34- URLOpenMethod ( ) {
35- this .getDeclaringType ( ) .getQualifiedName ( ) = "java.net.URL" and
36- (
37- this .getName ( ) = "openConnection" or
38- this .getName ( ) = "openStream"
39- )
40- }
41- }
42-
4334class HTTPStringToURLOpenMethodFlowConfig extends TaintTracking:: Configuration {
4435 HTTPStringToURLOpenMethodFlowConfig ( ) { this = "HttpsUrls::HTTPStringToURLOpenMethodFlowConfig" }
4536
4637 override predicate isSource ( DataFlow:: Node src ) { src .asExpr ( ) instanceof HTTPString }
4738
48- override predicate isSink ( DataFlow:: Node sink ) {
49- exists ( MethodAccess m |
50- sink .asExpr ( ) = m .getQualifier ( ) and m .getMethod ( ) instanceof URLOpenMethod
51- )
52- }
39+ override predicate isSink ( DataFlow:: Node sink ) { sinkNode ( sink , "open-url" ) }
5340
5441 override predicate isAdditionalTaintStep ( DataFlow:: Node node1 , DataFlow:: Node node2 ) {
5542 exists ( UrlConstructorCall u |
Original file line number Diff line number Diff line change @@ -184,7 +184,14 @@ private predicate sourceModelCsv(string row) {
184184 ]
185185}
186186
187- private predicate sinkModelCsv ( string row ) { none ( ) }
187+ private predicate sinkModelCsv ( string row ) {
188+ row =
189+ [
190+ // Open URL
191+ "java.net;URL;false;openConnection;;;Argument[-1];open-url" ,
192+ "java.net;URL;false;openStream;;;Argument[-1];open-url"
193+ ]
194+ }
188195
189196private predicate summaryModelCsv ( string row ) {
190197 row =
You can’t perform that action at this time.
0 commit comments