File tree Expand file tree Collapse file tree 2 files changed +20
-1
lines changed
go/ql/lib/semmle/go/security Expand file tree Collapse file tree 2 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ import SafeUrlFlowCustomizations
8
8
import semmle.go.dataflow.barrierguardutil.RedirectCheckBarrierGuard
9
9
import semmle.go.dataflow.barrierguardutil.RegexpCheck
10
10
import semmle.go.dataflow.barrierguardutil.UrlCheck
11
+ import semmle.go.dataflow.ExternalFlow
11
12
12
13
/** Provides classes and predicates for the request forgery query. */
13
14
module RequestForgery {
@@ -42,6 +43,22 @@ module RequestForgery {
42
43
*/
43
44
private class ThreatModelFlowAsSource extends Source instanceof ThreatModelFlowSource { }
44
45
46
+ private class DefaultRequestForgerySink extends Sink {
47
+ string kind ;
48
+
49
+ DefaultRequestForgerySink ( ) {
50
+ exists ( string modelKind | sinkNode ( this , modelKind ) |
51
+ modelKind = "request-forgery" and kind = "URL"
52
+ or
53
+ modelKind = "request-forgery[" + kind + "]"
54
+ )
55
+ }
56
+
57
+ override DataFlow:: Node getARequest ( ) { result = this }
58
+
59
+ override string getKind ( ) { result = kind }
60
+ }
61
+
45
62
/**
46
63
* The URL of an HTTP request, viewed as a sink for request forgery.
47
64
*/
Original file line number Diff line number Diff line change @@ -52,7 +52,9 @@ module KindValidation<KindValidationConfigSig Config> {
52
52
// Java-only currently, but may be shared in the future
53
53
"regex-use%" ,
54
54
// Swift-only currently, but may be shared in the future
55
- "%string-%length" , "weak-hash-input-%"
55
+ "%string-%length" , "weak-hash-input-%" ,
56
+ // Go-only currently, but may be shared in the future
57
+ "request-forgery%"
56
58
] )
57
59
}
58
60
}
You can’t perform that action at this time.
0 commit comments