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
88import semmle.go.dataflow.barrierguardutil.RedirectCheckBarrierGuard
99import semmle.go.dataflow.barrierguardutil.RegexpCheck
1010import semmle.go.dataflow.barrierguardutil.UrlCheck
11+ import semmle.go.dataflow.ExternalFlow
1112
1213/** Provides classes and predicates for the request forgery query. */
1314module RequestForgery {
@@ -42,6 +43,22 @@ module RequestForgery {
4243 */
4344 private class ThreatModelFlowAsSource extends Source instanceof ThreatModelFlowSource { }
4445
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+
4562 /**
4663 * The URL of an HTTP request, viewed as a sink for request forgery.
4764 */
Original file line number Diff line number Diff line change @@ -52,7 +52,9 @@ module KindValidation<KindValidationConfigSig Config> {
5252 // Java-only currently, but may be shared in the future
5353 "regex-use%" ,
5454 // 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%"
5658 ] )
5759 }
5860 }
You can’t perform that action at this time.
0 commit comments