Skip to content

Commit 535b4ea

Browse files
committed
Convert net/http UserControlledRequestField sources to MaD
1 parent 873fd66 commit 535b4ea

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

go/ql/lib/ext/net.http.model.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,11 @@ extensions:
3737
- ["net/http", "Request", True, "PostFormValue", "", "", "ReturnValue", "remote", "manual"]
3838
- ["net/http", "Request", True, "Referer", "", "", "ReturnValue", "remote", "manual"]
3939
- ["net/http", "Request", True, "UserAgent", "", "", "ReturnValue", "remote", "manual"]
40+
- ["net/http", "Request", True, "Body", "", "", "", "remote", "manual"]
41+
- ["net/http", "Request", True, "GetBody", "", "", "", "remote", "manual"]
42+
- ["net/http", "Request", True, "Form", "", "", "", "remote", "manual"]
43+
- ["net/http", "Request", True, "PostForm", "", "", "", "remote", "manual"]
44+
- ["net/http", "Request", True, "MultipartForm", "", "", "", "remote", "manual"]
45+
- ["net/http", "Request", True, "Header", "", "", "", "remote", "manual"]
46+
- ["net/http", "Request", True, "Trailer", "", "", "", "remote", "manual"]
47+
- ["net/http", "Request", True, "URL", "", "", "", "remote", "manual"]

go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,6 @@ private import semmle.go.dataflow.internal.FlowSummaryImpl::Private
88

99
/** Provides models of commonly used functions in the `net/http` package. */
1010
module NetHttp {
11-
/** An access to an HTTP request field whose value may be controlled by an untrusted user. */
12-
private class UserControlledRequestField extends RemoteFlowSource::Range, DataFlow::FieldReadNode {
13-
UserControlledRequestField() {
14-
exists(string fieldName | this.getField().hasQualifiedName("net/http", "Request", fieldName) |
15-
fieldName =
16-
["Body", "GetBody", "Form", "PostForm", "MultipartForm", "Header", "Trailer", "URL"]
17-
)
18-
}
19-
}
20-
2111
/** The declaration of a variable which either is or has a field that implements the http.ResponseWriter type */
2212
private class StdlibResponseWriter extends Http::ResponseWriter::Range {
2313
SsaWithFields v;

0 commit comments

Comments
 (0)