From dfd8e7d397dc7f47f8a21a2a363a7b10bcaf8ae6 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 12 Nov 2024 10:08:56 +0000 Subject: [PATCH 1/3] Set subtypes column to True in models This is almost always what we want. --- go/ql/lib/ext/archive.tar.model.yml | 4 +- go/ql/lib/ext/archive.zip.model.yml | 6 +- go/ql/lib/ext/bufio.model.yml | 16 ++-- go/ql/lib/ext/builtin.model.yml | 16 ++-- go/ql/lib/ext/bytes.model.yml | 76 +++++++++--------- go/ql/lib/ext/compress.bzip2.model.yml | 2 +- go/ql/lib/ext/compress.flate.model.yml | 4 +- go/ql/lib/ext/compress.gzip.model.yml | 2 +- go/ql/lib/ext/compress.lzw.model.yml | 2 +- go/ql/lib/ext/compress.zlib.model.yml | 4 +- go/ql/lib/ext/container.heap.model.yml | 6 +- go/ql/lib/ext/context.model.yml | 8 +- go/ql/lib/ext/crypto.rsa.model.yml | 4 +- go/ql/lib/ext/crypto.tls.model.yml | 6 +- go/ql/lib/ext/crypto.x509.model.yml | 2 +- go/ql/lib/ext/database.sql.model.yml | 2 +- go/ql/lib/ext/encoding.ascii85.model.yml | 4 +- go/ql/lib/ext/encoding.asn1.model.yml | 16 ++-- go/ql/lib/ext/encoding.base32.model.yml | 2 +- go/ql/lib/ext/encoding.base64.model.yml | 2 +- go/ql/lib/ext/encoding.binary.model.yml | 4 +- go/ql/lib/ext/encoding.csv.model.yml | 2 +- go/ql/lib/ext/encoding.gob.model.yml | 2 +- go/ql/lib/ext/encoding.hex.model.yml | 6 +- go/ql/lib/ext/encoding.json.model.yml | 14 ++-- go/ql/lib/ext/encoding.pem.model.yml | 6 +- go/ql/lib/ext/encoding.xml.model.yml | 16 ++-- go/ql/lib/ext/errors.model.yml | 6 +- ...ithub.com.beego.beego.core.utils.model.yml | 20 ++--- ...m.beego.beego.server.web.context.model.yml | 4 +- ...ithub.com.beego.beego.server.web.model.yml | 22 ++--- .../lib/ext/github.com.caarlos0.env.model.yml | 14 ++-- .../github.com.codeskyblue.go-sh.model.yml | 8 +- .../ext/github.com.couchbase.gocb.model.yml | 4 +- .../github.com.evanphx.json-patch.model.yml | 8 +- .../ext/github.com.gin-gonic.gin.model.yml | 6 +- .../ext/github.com.gobuffalo.envy.model.yml | 14 ++-- .../ext/github.com.gofiber.fiber.model.yml | 8 +- ...github.com.golang.protobuf.proto.model.yml | 8 +- ...github.com.hashicorp.go-envparse.model.yml | 2 +- .../ext/github.com.joho.godotenv.model.yml | 8 +- .../ext/github.com.json-iterator.go.model.yml | 4 +- ...ub.com.kelseyhightower.envconfig.model.yml | 12 +-- .../ext/github.com.labstack.echo.model.yml | 4 +- ...endgrid.sendgrid-go.helpers.mail.model.yml | 2 +- .../lib/ext/github.com.spf13.afero.model.yml | 68 ++++++++-------- .../ext/github.com.valyala.fasthttp.model.yml | 26 +++--- go/ql/lib/ext/go.uber.org.zap.model.yml | 22 ++--- .../lib/ext/golang.org.x.crypto.ssh.model.yml | 8 +- .../ext/golang.org.x.net.context.model.yml | 8 +- go/ql/lib/ext/golang.org.x.net.html.model.yml | 18 ++--- ...google.golang.org.protobuf.proto.model.yml | 8 +- go/ql/lib/ext/gopkg.in.yaml.model.yml | 8 +- go/ql/lib/ext/html.model.yml | 4 +- go/ql/lib/ext/html.template.model.yml | 8 +- go/ql/lib/ext/io.fs.model.yml | 14 ++-- go/ql/lib/ext/io.ioutil.model.yml | 16 ++-- go/ql/lib/ext/io.model.yml | 24 +++--- .../k8s.io.apimachinery.pkg.runtime.model.yml | 40 +++++----- go/ql/lib/ext/math.big.model.yml | 2 +- go/ql/lib/ext/mime.model.yml | 4 +- go/ql/lib/ext/mime.multipart.model.yml | 2 +- go/ql/lib/ext/mime.quotedprintable.model.yml | 2 +- go/ql/lib/ext/net.http.httputil.model.yml | 12 +-- go/ql/lib/ext/net.http.model.yml | 18 ++--- go/ql/lib/ext/net.mail.model.yml | 6 +- go/ql/lib/ext/net.model.yml | 8 +- go/ql/lib/ext/net.textproto.model.yml | 10 +-- go/ql/lib/ext/net.url.model.yml | 18 ++--- go/ql/lib/ext/os.exec.model.yml | 4 +- go/ql/lib/ext/os.model.yml | 80 +++++++++---------- go/ql/lib/ext/path.filepath.model.yml | 26 +++--- go/ql/lib/ext/path.model.yml | 10 +-- go/ql/lib/ext/reflect.model.yml | 8 +- go/ql/lib/ext/regexp.model.yml | 2 +- go/ql/lib/ext/sort.model.yml | 2 +- go/ql/lib/ext/strconv.model.yml | 18 ++--- go/ql/lib/ext/strings.model.yml | 62 +++++++------- go/ql/lib/ext/sync.atomic.model.yml | 24 +++--- go/ql/lib/ext/syscall.model.yml | 24 +++--- go/ql/lib/ext/text.template.model.yml | 8 +- .../threat-models-flowtest1.ext.yml | 8 +- .../threat-models-flowtest2.ext.yml | 8 +- .../threat-models-flowtest3.ext.yml | 9 +-- .../threat-models-flowtest4.ext.yml | 9 +-- .../threat-models-flowtest5.ext.yml | 9 +-- .../threat-models-flowtest6.ext.yml | 8 +- 87 files changed, 529 insertions(+), 532 deletions(-) diff --git a/go/ql/lib/ext/archive.tar.model.yml b/go/ql/lib/ext/archive.tar.model.yml index f1212e35c022..82d4647323b9 100644 --- a/go/ql/lib/ext/archive.tar.model.yml +++ b/go/ql/lib/ext/archive.tar.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["archive/tar", "", False, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["archive/tar", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["archive/tar", "", True, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["archive/tar", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["archive/tar", "Header", True, "FileInfo", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["archive/tar", "Reader", True, "Next", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["archive/tar", "Writer", True, "WriteHeader", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/archive.zip.model.yml b/go/ql/lib/ext/archive.zip.model.yml index 17e2bb0bd789..4749d5433c9f 100644 --- a/go/ql/lib/ext/archive.zip.model.yml +++ b/go/ql/lib/ext/archive.zip.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["archive/zip", "", False, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["archive/zip", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["archive/zip", "", False, "OpenReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["archive/zip", "", True, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["archive/zip", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["archive/zip", "", True, "OpenReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["archive/zip", "File", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["archive/zip", "File", True, "OpenRaw", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["archive/zip", "Writer", True, "Copy", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/bufio.model.yml b/go/ql/lib/ext/bufio.model.yml index e9dd22e66861..1a7cbb4742de 100644 --- a/go/ql/lib/ext/bufio.model.yml +++ b/go/ql/lib/ext/bufio.model.yml @@ -3,14 +3,14 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["bufio", "", False, "NewReadWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "NewReaderSize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "NewScanner", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "ScanBytes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - - ["bufio", "", False, "ScanLines", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - - ["bufio", "", False, "ScanRunes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - - ["bufio", "", False, "ScanWords", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] + - ["bufio", "", True, "NewReadWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bufio", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bufio", "", True, "NewReaderSize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bufio", "", True, "NewScanner", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bufio", "", True, "ScanBytes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] + - ["bufio", "", True, "ScanLines", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] + - ["bufio", "", True, "ScanRunes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] + - ["bufio", "", True, "ScanWords", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - ["bufio", "Reader", True, "Peek", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["bufio", "Reader", True, "ReadBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["bufio", "Reader", True, "ReadLine", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/builtin.model.yml b/go/ql/lib/ext/builtin.model.yml index 816c89008a84..22f5ac39d84e 100644 --- a/go/ql/lib/ext/builtin.model.yml +++ b/go/ql/lib/ext/builtin.model.yml @@ -3,11 +3,11 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["", "", False, "append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... - - ["", "", False, "append", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["", "", False, "append", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... - - ["", "", False, "append", "", "", "Argument[1].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["", "", False, "copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring - - ["", "", False, "copy", "", "", "Argument[1].ArrayElement", "Argument[0].ArrayElement", "value", "manual"] - - ["", "", False, "max", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] - - ["", "", False, "min", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] + - ["", "", True, "append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... + - ["", "", True, "append", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] + - ["", "", True, "append", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... + - ["", "", True, "append", "", "", "Argument[1].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] + - ["", "", True, "copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring + - ["", "", True, "copy", "", "", "Argument[1].ArrayElement", "Argument[0].ArrayElement", "value", "manual"] + - ["", "", True, "max", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] + - ["", "", True, "min", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] diff --git a/go/ql/lib/ext/bytes.model.yml b/go/ql/lib/ext/bytes.model.yml index 762d0ca16ee6..03b4787e8670 100644 --- a/go/ql/lib/ext/bytes.model.yml +++ b/go/ql/lib/ext/bytes.model.yml @@ -3,44 +3,44 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["bytes", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["bytes", "", False, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["bytes", "", False, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["bytes", "", False, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "FieldsFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "NewBuffer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "NewBufferString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Runes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] + - ["bytes", "", True, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["bytes", "", True, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["bytes", "", True, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "FieldsFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "NewBuffer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "NewBufferString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Runes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["bytes", "", True, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["bytes", "Buffer", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["bytes", "Buffer", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["bytes", "Buffer", True, "ReadBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.bzip2.model.yml b/go/ql/lib/ext/compress.bzip2.model.yml index 38719037de18..4848caa1f69d 100644 --- a/go/ql/lib/ext/compress.bzip2.model.yml +++ b/go/ql/lib/ext/compress.bzip2.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["compress/bzip2", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["compress/bzip2", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.flate.model.yml b/go/ql/lib/ext/compress.flate.model.yml index 5b36372c8c09..7d5611782b2c 100644 --- a/go/ql/lib/ext/compress.flate.model.yml +++ b/go/ql/lib/ext/compress.flate.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["compress/flate", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["compress/flate", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["compress/flate", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["compress/flate", "", True, "NewReaderDict", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["compress/flate", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["compress/flate", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.gzip.model.yml b/go/ql/lib/ext/compress.gzip.model.yml index d3da545b4483..eb0f7562c6a8 100644 --- a/go/ql/lib/ext/compress.gzip.model.yml +++ b/go/ql/lib/ext/compress.gzip.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["compress/gzip", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["compress/gzip", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["compress/gzip", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["compress/gzip", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.lzw.model.yml b/go/ql/lib/ext/compress.lzw.model.yml index 5db30e14ec36..46077643d8ec 100644 --- a/go/ql/lib/ext/compress.lzw.model.yml +++ b/go/ql/lib/ext/compress.lzw.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["compress/lzw", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["compress/lzw", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.zlib.model.yml b/go/ql/lib/ext/compress.zlib.model.yml index abd162c33923..de73d4e849a6 100644 --- a/go/ql/lib/ext/compress.zlib.model.yml +++ b/go/ql/lib/ext/compress.zlib.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["compress/zlib", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["compress/zlib", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["compress/zlib", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["compress/zlib", "", True, "NewReaderDict", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["compress/zlib", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["compress/zlib", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/container.heap.model.yml b/go/ql/lib/ext/container.heap.model.yml index 57aabd12ea27..64501a41927a 100644 --- a/go/ql/lib/ext/container.heap.model.yml +++ b/go/ql/lib/ext/container.heap.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["container/heap", "", False, "Pop", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["container/heap", "", False, "Push", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["container/heap", "", False, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["container/heap", "", True, "Pop", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["container/heap", "", True, "Push", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["container/heap", "", True, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["container/heap", "Interface", True, "Pop", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["container/heap", "Interface", True, "Push", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/context.model.yml b/go/ql/lib/ext/context.model.yml index b71adeb6b3c7..dc5cddecdc5b 100644 --- a/go/ql/lib/ext/context.model.yml +++ b/go/ql/lib/ext/context.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["context", "", False, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["context", "", False, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["context", "", False, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["context", "", False, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["context", "", True, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["context", "", True, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["context", "", True, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["context", "", True, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - ["context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.rsa.model.yml b/go/ql/lib/ext/crypto.rsa.model.yml index 851251973a62..447fca7584ff 100644 --- a/go/ql/lib/ext/crypto.rsa.model.yml +++ b/go/ql/lib/ext/crypto.rsa.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["crypto/rsa", "", False, "DecryptOAEP", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"] - - ["crypto/rsa", "", False, "DecryptPKCS1v15", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] + - ["crypto/rsa", "", True, "DecryptOAEP", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"] + - ["crypto/rsa", "", True, "DecryptPKCS1v15", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.tls.model.yml b/go/ql/lib/ext/crypto.tls.model.yml index ecb4c8859946..26f15eefb32a 100644 --- a/go/ql/lib/ext/crypto.tls.model.yml +++ b/go/ql/lib/ext/crypto.tls.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["crypto/tls", "", False, "Client", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["crypto/tls", "", False, "NewListener", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["crypto/tls", "", False, "Server", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["crypto/tls", "", True, "Client", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["crypto/tls", "", True, "NewListener", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["crypto/tls", "", True, "Server", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.x509.model.yml b/go/ql/lib/ext/crypto.x509.model.yml index dd16777a75b7..ee389de2db0a 100644 --- a/go/ql/lib/ext/crypto.x509.model.yml +++ b/go/ql/lib/ext/crypto.x509.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["crypto/x509", "", False, "DecryptPEMBlock", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["crypto/x509", "", True, "DecryptPEMBlock", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/database.sql.model.yml b/go/ql/lib/ext/database.sql.model.yml index e1083f6e49a6..9d4d31aa0d1c 100644 --- a/go/ql/lib/ext/database.sql.model.yml +++ b/go/ql/lib/ext/database.sql.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["database/sql", "", False, "Named", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["database/sql", "", True, "Named", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["database/sql", "Conn", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - ["database/sql", "DB", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["database/sql", "DB", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.ascii85.model.yml b/go/ql/lib/ext/encoding.ascii85.model.yml index 51c15078176b..cd4b2ae258b9 100644 --- a/go/ql/lib/ext/encoding.ascii85.model.yml +++ b/go/ql/lib/ext/encoding.ascii85.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/ascii85", "", False, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/ascii85", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/ascii85", "", True, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["encoding/ascii85", "", True, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.asn1.model.yml b/go/ql/lib/ext/encoding.asn1.model.yml index e0c08cc216ef..e6443cadf1ff 100644 --- a/go/ql/lib/ext/encoding.asn1.model.yml +++ b/go/ql/lib/ext/encoding.asn1.model.yml @@ -3,11 +3,11 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/asn1", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "MarshalWithParams", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["encoding/asn1", "", False, "Unmarshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/asn1", "", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/asn1", "", True, "MarshalWithParams", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/asn1", "", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["encoding/asn1", "", True, "Unmarshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/asn1", "", True, "UnmarshalWithParams", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["encoding/asn1", "", True, "UnmarshalWithParams", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/asn1", "", True, "UnmarshalWithParams", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] + - ["encoding/asn1", "", True, "UnmarshalWithParams", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.base32.model.yml b/go/ql/lib/ext/encoding.base32.model.yml index 5cabdb05a414..72830e6a5810 100644 --- a/go/ql/lib/ext/encoding.base32.model.yml +++ b/go/ql/lib/ext/encoding.base32.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/base32", "", False, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["encoding/base32", "", True, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["encoding/base32", "Encoding", True, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - ["encoding/base32", "Encoding", True, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.base64.model.yml b/go/ql/lib/ext/encoding.base64.model.yml index 1e199c5f4692..81ff2247bfd0 100644 --- a/go/ql/lib/ext/encoding.base64.model.yml +++ b/go/ql/lib/ext/encoding.base64.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/base64", "", False, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["encoding/base64", "", True, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["encoding/base64", "Encoding", True, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - ["encoding/base64", "Encoding", True, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.binary.model.yml b/go/ql/lib/ext/encoding.binary.model.yml index 34705c1364ed..c6131f014d63 100644 --- a/go/ql/lib/ext/encoding.binary.model.yml +++ b/go/ql/lib/ext/encoding.binary.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/binary", "", False, "Read", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["encoding/binary", "", False, "Write", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] + - ["encoding/binary", "", True, "Read", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] + - ["encoding/binary", "", True, "Write", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.csv.model.yml b/go/ql/lib/ext/encoding.csv.model.yml index 2f2611ad83a6..77f999798c4f 100644 --- a/go/ql/lib/ext/encoding.csv.model.yml +++ b/go/ql/lib/ext/encoding.csv.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/csv", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/csv", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["encoding/csv", "Reader", True, "Read", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["encoding/csv", "Reader", True, "ReadAll", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["encoding/csv", "Writer", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.gob.model.yml b/go/ql/lib/ext/encoding.gob.model.yml index c7ce389bd1c5..da44e80b3e83 100644 --- a/go/ql/lib/ext/encoding.gob.model.yml +++ b/go/ql/lib/ext/encoding.gob.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/gob", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/gob", "", True, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["encoding/gob", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["encoding/gob", "Decoder", True, "DecodeValue", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["encoding/gob", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.hex.model.yml b/go/ql/lib/ext/encoding.hex.model.yml index 2c9dbdac031c..a081018a3c57 100644 --- a/go/ql/lib/ext/encoding.hex.model.yml +++ b/go/ql/lib/ext/encoding.hex.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/hex", "", False, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/hex", "", False, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/hex", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/hex", "", True, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["encoding/hex", "", True, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/hex", "", True, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.json.model.yml b/go/ql/lib/ext/encoding.json.model.yml index b820561fa95c..40812ff815b2 100644 --- a/go/ql/lib/ext/encoding.json.model.yml +++ b/go/ql/lib/ext/encoding.json.model.yml @@ -3,13 +3,13 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/json", "", False, "Compact", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/json", "", False, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/json", "", False, "Indent", "", "", "Argument[1..3]", "Argument[0]", "taint", "manual"] - - ["encoding/json", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json", "", False, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["encoding/json", "", True, "Compact", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["encoding/json", "", True, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["encoding/json", "", True, "Indent", "", "", "Argument[1..3]", "Argument[0]", "taint", "manual"] + - ["encoding/json", "", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/json", "", True, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/json", "", True, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/json", "", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["encoding/json", "Decoder", True, "Buffered", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["encoding/json", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["encoding/json", "Decoder", True, "Token", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.pem.model.yml b/go/ql/lib/ext/encoding.pem.model.yml index 57c0f1fc662d..5ad944c14ad7 100644 --- a/go/ql/lib/ext/encoding.pem.model.yml +++ b/go/ql/lib/ext/encoding.pem.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/pem", "", False, "Decode", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["encoding/pem", "", False, "Encode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/pem", "", False, "EncodeToMemory", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/pem", "", True, "Decode", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] + - ["encoding/pem", "", True, "Encode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["encoding/pem", "", True, "EncodeToMemory", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.xml.model.yml b/go/ql/lib/ext/encoding.xml.model.yml index 40824a28c9eb..f42878b4b456 100644 --- a/go/ql/lib/ext/encoding.xml.model.yml +++ b/go/ql/lib/ext/encoding.xml.model.yml @@ -3,14 +3,14 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["encoding/xml", "", False, "CopyToken", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/xml", "", False, "Escape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/xml", "", False, "EscapeText", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/xml", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/xml", "", False, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/xml", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/xml", "", False, "NewTokenDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/xml", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["encoding/xml", "", True, "CopyToken", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/xml", "", True, "Escape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["encoding/xml", "", True, "EscapeText", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["encoding/xml", "", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/xml", "", True, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"] + - ["encoding/xml", "", True, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/xml", "", True, "NewTokenDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["encoding/xml", "", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["encoding/xml", "CharData", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["encoding/xml", "Comment", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["encoding/xml", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/errors.model.yml b/go/ql/lib/ext/errors.model.yml index a94c8e558ff4..3ef4b4545bb7 100644 --- a/go/ql/lib/ext/errors.model.yml +++ b/go/ql/lib/ext/errors.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["errors", "", False, "As", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["errors", "", False, "New", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["errors", "", False, "Unwrap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["errors", "", True, "As", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["errors", "", True, "New", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["errors", "", True, "Unwrap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml b/go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml index 4eb0688e37e7..efcc6fd85d08 100644 --- a/go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml +++ b/go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml @@ -10,16 +10,16 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["group:beego-utils", "", False, "SliceChunk", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceDiff", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceFilter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceIntersect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceMerge", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SlicePad", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceRand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceChunk", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceDiff", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceFilter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceIntersect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceMerge", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SlicePad", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceRand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego-utils", "", True, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["group:beego-utils", "BeeMap", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["group:beego-utils", "BeeMap", True, "Items", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["group:beego-utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml b/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml index e2c856af7e5a..97b66e585e76 100644 --- a/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml +++ b/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml @@ -11,14 +11,14 @@ extensions: extensible: sinkModel data: # path-injection - - ["group:beego-context", "BeegoOutput", False, "Download", "", "", "Argument[0]", "path-injection", "manual"] + - ["group:beego-context", "BeegoOutput", True, "Download", "", "", "Argument[0]", "path-injection", "manual"] # url-redirection - ["group:beego-context", "Context", True, "Redirect", "", "", "Argument[1]", "url-redirection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel data: - - ["group:beego-context", "", False, "WriteBody", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] + - ["group:beego-context", "", True, "WriteBody", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] - addsTo: pack: codeql/go-all extensible: sourceModel diff --git a/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml b/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml index 8a11da7ad83c..6de91acfaf14 100644 --- a/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml +++ b/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml @@ -11,23 +11,23 @@ extensions: extensible: sinkModel data: # path-injection - - ["group:beego", "", False, "Walk", "", "", "Argument[1]", "path-injection", "manual"] - - ["group:beego", "Controller", False, "SaveToFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["group:beego", "Controller", False, "SaveToFileWithBuffer", "", "", "Argument[1]", "path-injection", "manual"] # only exists in v2 - - ["group:beego", "FileSystem", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] + - ["group:beego", "", True, "Walk", "", "", "Argument[1]", "path-injection", "manual"] + - ["group:beego", "Controller", True, "SaveToFile", "", "", "Argument[1]", "path-injection", "manual"] + - ["group:beego", "Controller", True, "SaveToFileWithBuffer", "", "", "Argument[1]", "path-injection", "manual"] # only exists in v2 + - ["group:beego", "FileSystem", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] # url-redirection - ["group:beego", "Controller", True, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel data: - - ["group:beego", "", False, "HTML2str", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "Htmlquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "Htmlunquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "MapGet", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["group:beego", "", False, "ParseForm", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["group:beego", "", False, "Str2html", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "Substr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego", "", True, "HTML2str", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego", "", True, "Htmlquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego", "", True, "Htmlunquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego", "", True, "MapGet", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["group:beego", "", True, "ParseForm", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["group:beego", "", True, "Str2html", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:beego", "", True, "Substr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - addsTo: pack: codeql/go-all extensible: sourceModel diff --git a/go/ql/lib/ext/github.com.caarlos0.env.model.yml b/go/ql/lib/ext/github.com.caarlos0.env.model.yml index 42f6380c3fa9..cf5bbc1d0553 100644 --- a/go/ql/lib/ext/github.com.caarlos0.env.model.yml +++ b/go/ql/lib/ext/github.com.caarlos0.env.model.yml @@ -3,14 +3,14 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/caarlos0/env", "", False, "Parse", "", "", "Argument[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseAs", "", "", "ReturnValue[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseAsWithOptions", "", "", "ReturnValue[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseWithFuncs", "", "", "Argument[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseWithOptions", "", "", "Argument[0]", "environment", "manual"] + - ["github.com/caarlos0/env", "", True, "Parse", "", "", "Argument[0]", "environment", "manual"] + - ["github.com/caarlos0/env", "", True, "ParseAs", "", "", "ReturnValue[0]", "environment", "manual"] + - ["github.com/caarlos0/env", "", True, "ParseAsWithOptions", "", "", "ReturnValue[0]", "environment", "manual"] + - ["github.com/caarlos0/env", "", True, "ParseWithFuncs", "", "", "Argument[0]", "environment", "manual"] + - ["github.com/caarlos0/env", "", True, "ParseWithOptions", "", "", "Argument[0]", "environment", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel data: - - ["github.com/caarlos0/env", "", False, "Must", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["github.com/caarlos0/env", "", False, "ToMap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["github.com/caarlos0/env", "", True, "Must", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + - ["github.com/caarlos0/env", "", True, "ToMap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml b/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml index d1e5c590af6c..2b6d9da1b383 100644 --- a/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml +++ b/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: sinkModel data: - - ["github.com/codeskyblue/go-sh", "", False, "Command", "", "", "Argument[0]", "command-injection", "manual"] - - ["github.com/codeskyblue/go-sh", "Session", False, "Call", "", "", "Argument[0]", "command-injection", "manual"] - - ["github.com/codeskyblue/go-sh", "Session", False, "Command", "", "", "Argument[0]", "command-injection", "manual"] - - ["github.com/codeskyblue/go-sh", "Session", False, "Exec", "", "", "Argument[0]", "command-injection", "manual"] + - ["github.com/codeskyblue/go-sh", "", True, "Command", "", "", "Argument[0]", "command-injection", "manual"] + - ["github.com/codeskyblue/go-sh", "Session", True, "Call", "", "", "Argument[0]", "command-injection", "manual"] + - ["github.com/codeskyblue/go-sh", "Session", True, "Command", "", "", "Argument[0]", "command-injection", "manual"] + - ["github.com/codeskyblue/go-sh", "Session", True, "Exec", "", "", "Argument[0]", "command-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.couchbase.gocb.model.yml b/go/ql/lib/ext/github.com.couchbase.gocb.model.yml index ff0a4c22c8de..71b11d268828 100644 --- a/go/ql/lib/ext/github.com.couchbase.gocb.model.yml +++ b/go/ql/lib/ext/github.com.couchbase.gocb.model.yml @@ -10,8 +10,8 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["group:gocb", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:gocb", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:gocb", "", True, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["group:gocb", "", True, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["group:gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["group:gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["group:gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.evanphx.json-patch.model.yml b/go/ql/lib/ext/github.com.evanphx.json-patch.model.yml index 4824f521e4ef..56649f8dc7f2 100644 --- a/go/ql/lib/ext/github.com.evanphx.json-patch.model.yml +++ b/go/ql/lib/ext/github.com.evanphx.json-patch.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["github.com/evanphx/json-patch", "", False, "CreateMergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "", False, "DecodePatch", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "", False, "MergeMergePatches", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "", False, "MergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] + - ["github.com/evanphx/json-patch", "", True, "CreateMergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] + - ["github.com/evanphx/json-patch", "", True, "DecodePatch", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["github.com/evanphx/json-patch", "", True, "MergeMergePatches", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] + - ["github.com/evanphx/json-patch", "", True, "MergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - ["github.com/evanphx/json-patch", "Patch", True, "Apply", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["github.com/evanphx/json-patch", "Patch", True, "Apply", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.gin-gonic.gin.model.yml b/go/ql/lib/ext/github.com.gin-gonic.gin.model.yml index bd228fc0ec35..92b1c757ac7a 100644 --- a/go/ql/lib/ext/github.com.gin-gonic.gin.model.yml +++ b/go/ql/lib/ext/github.com.gin-gonic.gin.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/go-all extensible: sinkModel data: - - ["github.com/gin-gonic/gin", "Context", False, "File", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gin-gonic/gin", "Context", False, "FileAttachment", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gin-gonic/gin", "Context", False, "SaveUploadedFile", "", "", "Argument[1]", "path-injection", "manual"] + - ["github.com/gin-gonic/gin", "Context", True, "File", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/gin-gonic/gin", "Context", True, "FileAttachment", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/gin-gonic/gin", "Context", True, "SaveUploadedFile", "", "", "Argument[1]", "path-injection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel diff --git a/go/ql/lib/ext/github.com.gobuffalo.envy.model.yml b/go/ql/lib/ext/github.com.gobuffalo.envy.model.yml index 1d0d890560d9..a47dbca95997 100644 --- a/go/ql/lib/ext/github.com.gobuffalo.envy.model.yml +++ b/go/ql/lib/ext/github.com.gobuffalo.envy.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/gobuffalo/envy", "", False, "Environ", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "Get", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "GoBin", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "GoPath", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "GoPaths", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "Map", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "MustGet", "", "", "ReturnValue[0]", "environment", "manual"] + - ["github.com/gobuffalo/envy", "", True, "Environ", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/gobuffalo/envy", "", True, "Get", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/gobuffalo/envy", "", True, "GoBin", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/gobuffalo/envy", "", True, "GoPath", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/gobuffalo/envy", "", True, "GoPaths", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/gobuffalo/envy", "", True, "Map", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/gobuffalo/envy", "", True, "MustGet", "", "", "ReturnValue[0]", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.gofiber.fiber.model.yml b/go/ql/lib/ext/github.com.gofiber.fiber.model.yml index 7e553b2156de..c959d137301f 100644 --- a/go/ql/lib/ext/github.com.gofiber.fiber.model.yml +++ b/go/ql/lib/ext/github.com.gofiber.fiber.model.yml @@ -4,9 +4,9 @@ extensions: extensible: sinkModel data: # path-injection - - ["github.com/gofiber/fiber", "Ctx", False, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gofiber/fiber", "Ctx", False, "Download", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gofiber/fiber", "Ctx", False, "SaveFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/gofiber/fiber", "Ctx", False, "SaveFileToStorage", "", "", "Argument[1]", "path-injection", "manual"] # does not exist in v1 + - ["github.com/gofiber/fiber", "Ctx", True, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/gofiber/fiber", "Ctx", True, "Download", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/gofiber/fiber", "Ctx", True, "SaveFile", "", "", "Argument[1]", "path-injection", "manual"] + - ["github.com/gofiber/fiber", "Ctx", True, "SaveFileToStorage", "", "", "Argument[1]", "path-injection", "manual"] # does not exist in v1 # url-redirection - ["github.com/gofiber/fiber", "Ctx", True, "Redirect", "", "", "Argument[0]", "url-redirection[receiver]", "manual"] diff --git a/go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml b/go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml index 8513d1198164..6daf9851e7da 100644 --- a/go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml +++ b/go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["github.com/golang/protobuf/proto", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["github.com/golang/protobuf/proto", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang/protobuf/proto", "", False, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["github.com/golang/protobuf/proto", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["github.com/golang/protobuf/proto", "", True, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["github.com/golang/protobuf/proto", "", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["github.com/golang/protobuf/proto", "", True, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["github.com/golang/protobuf/proto", "", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml b/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml index 73a178fbdcc8..bd1303887ac8 100644 --- a/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml +++ b/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/hashicorp/go-envparse", "", False, "Parse", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/hashicorp/go-envparse", "", True, "Parse", "", "", "ReturnValue", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.joho.godotenv.model.yml b/go/ql/lib/ext/github.com.joho.godotenv.model.yml index 8bd62c5dd0b1..8221901f1cf7 100644 --- a/go/ql/lib/ext/github.com.joho.godotenv.model.yml +++ b/go/ql/lib/ext/github.com.joho.godotenv.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/joho/godotenv", "", False, "Parse", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/joho/godotenv", "", False, "Read", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/joho/godotenv", "", False, "Unmarshal", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/joho/godotenv", "", False, "UnmarshalBytes", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/joho/godotenv", "", True, "Parse", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/joho/godotenv", "", True, "Read", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/joho/godotenv", "", True, "Unmarshal", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/joho/godotenv", "", True, "UnmarshalBytes", "", "", "ReturnValue", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.json-iterator.go.model.yml b/go/ql/lib/ext/github.com.json-iterator.go.model.yml index bf974a171097..f72ec191e063 100644 --- a/go/ql/lib/ext/github.com.json-iterator.go.model.yml +++ b/go/ql/lib/ext/github.com.json-iterator.go.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["github.com/json-iterator/go", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["github.com/json-iterator/go", "", False, "UnmarshalFromString", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["github.com/json-iterator/go", "", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["github.com/json-iterator/go", "", True, "UnmarshalFromString", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["github.com/json-iterator/go", "API", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["github.com/json-iterator/go", "API", True, "UnmarshalFromString", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml b/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml index 71d032a18e1b..84b2cfc1fc0a 100644 --- a/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml +++ b/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/kelseyhightower/envconfig", "", False, "CheckDisallowed", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "MustProcess", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Process", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Usage", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Usagef", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Usaget", "", "", "Argument[1]", "environment", "manual"] \ No newline at end of file + - ["github.com/kelseyhightower/envconfig", "", True, "CheckDisallowed", "", "", "Argument[1]", "environment", "manual"] + - ["github.com/kelseyhightower/envconfig", "", True, "MustProcess", "", "", "Argument[1]", "environment", "manual"] + - ["github.com/kelseyhightower/envconfig", "", True, "Process", "", "", "Argument[1]", "environment", "manual"] + - ["github.com/kelseyhightower/envconfig", "", True, "Usage", "", "", "Argument[1]", "environment", "manual"] + - ["github.com/kelseyhightower/envconfig", "", True, "Usagef", "", "", "Argument[1]", "environment", "manual"] + - ["github.com/kelseyhightower/envconfig", "", True, "Usaget", "", "", "Argument[1]", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.labstack.echo.model.yml b/go/ql/lib/ext/github.com.labstack.echo.model.yml index b497cc133918..830360bbdb2d 100644 --- a/go/ql/lib/ext/github.com.labstack.echo.model.yml +++ b/go/ql/lib/ext/github.com.labstack.echo.model.yml @@ -4,8 +4,8 @@ extensions: extensible: sinkModel data: # path-injection - - ["github.com/labstack/echo", "Context", False, "Attachment", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/labstack/echo", "Context", False, "File", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/labstack/echo", "Context", True, "Attachment", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/labstack/echo", "Context", True, "File", "", "", "Argument[0]", "path-injection", "manual"] # url-redirection - ["github.com/labstack/echo", "Context", True, "Redirect", "", "", "Argument[1]", "url-redirection", "manual"] - addsTo: diff --git a/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml b/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml index ce8ac14ccfa5..a84acc2624ec 100644 --- a/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml +++ b/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["github.com/sendgrid/sendgrid-go/helpers/mail", "", False, "NewContent", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["github.com/sendgrid/sendgrid-go/helpers/mail", "", True, "NewContent", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.spf13.afero.model.yml b/go/ql/lib/ext/github.com.spf13.afero.model.yml index 94879539233d..2ddab6ef43bb 100644 --- a/go/ql/lib/ext/github.com.spf13.afero.model.yml +++ b/go/ql/lib/ext/github.com.spf13.afero.model.yml @@ -3,37 +3,37 @@ extensions: pack: codeql/go-all extensible: sinkModel data: - - ["github.com/spf13/afero", "HttpFs", False, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", False, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", False, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", False, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", False, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", False, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", False, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", False, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", False, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", False, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", False, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", False, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", False, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", False, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", False, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", False, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", False, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", False, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", False, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", False, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", False, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", False, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", False, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "HttpFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "HttpFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "HttpFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "HttpFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "HttpFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "MemMapFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "MemMapFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "MemMapFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "MemMapFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "MemMapFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "MemMapFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "MemMapFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "OsFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "ReadOnlyFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "ReadOnlyFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "ReadOnlyFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "ReadOnlyFs", True, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "ReadOnlyFs", True, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "ReadOnlyFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "ReadOnlyFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "RegexpFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "RegexpFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "RegexpFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "RegexpFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "RegexpFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "RegexpFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/spf13/afero", "RegexpFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.valyala.fasthttp.model.yml b/go/ql/lib/ext/github.com.valyala.fasthttp.model.yml index feafceb364df..92ef0132a336 100644 --- a/go/ql/lib/ext/github.com.valyala.fasthttp.model.yml +++ b/go/ql/lib/ext/github.com.valyala.fasthttp.model.yml @@ -30,14 +30,14 @@ extensions: - ["github.com/valyala/fasthttp", "TCPDialer", True, "DialDualStackTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - ["github.com/valyala/fasthttp", "TCPDialer", True, "DialTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] # path-injection - - ["github.com/valyala/fasthttp", "", False, "SaveMultipartFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFileBytes", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFileBytesUncompressed", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFileUncompressed", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", False, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", False, "SendFileBytes", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "Response", False, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "", True, "SaveMultipartFile", "", "", "Argument[1]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "", True, "ServeFile", "", "", "Argument[1]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "", True, "ServeFileBytes", "", "", "Argument[1]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "", True, "ServeFileBytesUncompressed", "", "", "Argument[1]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "", True, "ServeFileUncompressed", "", "", "Argument[1]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "RequestCtx", True, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "RequestCtx", True, "SendFileBytes", "", "", "Argument[0]", "path-injection", "manual"] + - ["github.com/valyala/fasthttp", "Response", True, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] # url-redirection - ["github.com/valyala/fasthttp", "RequestCtx", True, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"] - ["github.com/valyala/fasthttp", "RequestCtx", True, "RedirectBytes", "", "", "Argument[0]", "url-redirection", "manual"] @@ -45,11 +45,11 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["github.com/valyala/fasthttp", "URI", False, "SetHost", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", False, "SetHostBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", False, "Update", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", False, "UpdateBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", False, "Parse", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] + - ["github.com/valyala/fasthttp", "URI", True, "SetHost", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + - ["github.com/valyala/fasthttp", "URI", True, "SetHostBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + - ["github.com/valyala/fasthttp", "URI", True, "Update", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + - ["github.com/valyala/fasthttp", "URI", True, "UpdateBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + - ["github.com/valyala/fasthttp", "URI", True, "Parse", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] - addsTo: pack: codeql/go-all extensible: sourceModel diff --git a/go/ql/lib/ext/go.uber.org.zap.model.yml b/go/ql/lib/ext/go.uber.org.zap.model.yml index 2ca7f7e8a804..7d5b2cb231d8 100644 --- a/go/ql/lib/ext/go.uber.org.zap.model.yml +++ b/go/ql/lib/ext/go.uber.org.zap.model.yml @@ -3,14 +3,14 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["go.uber.org/zap", "", False, "Any", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Binary", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "ByteString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "ByteStrings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Error", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Errors", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "NamedError", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Reflect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "String", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Stringp", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Strings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "Any", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "Binary", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "ByteString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "ByteStrings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "Error", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "Errors", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "NamedError", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "Reflect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "String", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "Stringp", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["go.uber.org/zap", "", True, "Strings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml b/go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml index 8419737a2f2d..205a2a1dcb57 100644 --- a/go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml +++ b/go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: sinkModel data: - - ["golang.org/x/crypto/ssh", "Session", False, "CombinedOutput", "", "", "Argument[0]", "command-injection", "manual"] - - ["golang.org/x/crypto/ssh", "Session", False, "Output", "", "", "Argument[0]", "command-injection", "manual"] - - ["golang.org/x/crypto/ssh", "Session", False, "Run", "", "", "Argument[0]", "command-injection", "manual"] - - ["golang.org/x/crypto/ssh", "Session", False, "Start", "", "", "Argument[0]", "command-injection", "manual"] + - ["golang.org/x/crypto/ssh", "Session", True, "CombinedOutput", "", "", "Argument[0]", "command-injection", "manual"] + - ["golang.org/x/crypto/ssh", "Session", True, "Output", "", "", "Argument[0]", "command-injection", "manual"] + - ["golang.org/x/crypto/ssh", "Session", True, "Run", "", "", "Argument[0]", "command-injection", "manual"] + - ["golang.org/x/crypto/ssh", "Session", True, "Start", "", "", "Argument[0]", "command-injection", "manual"] diff --git a/go/ql/lib/ext/golang.org.x.net.context.model.yml b/go/ql/lib/ext/golang.org.x.net.context.model.yml index 873de75761fb..d1036f56d29c 100644 --- a/go/ql/lib/ext/golang.org.x.net.context.model.yml +++ b/go/ql/lib/ext/golang.org.x.net.context.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["golang.org/x/net/context", "", False, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/context", "", False, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/context", "", False, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/context", "", False, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] + - ["golang.org/x/net/context", "", True, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["golang.org/x/net/context", "", True, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["golang.org/x/net/context", "", True, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["golang.org/x/net/context", "", True, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - ["golang.org/x/net/context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/golang.org.x.net.html.model.yml b/go/ql/lib/ext/golang.org.x.net.html.model.yml index 5633e8b3b408..d6be3e28a3aa 100644 --- a/go/ql/lib/ext/golang.org.x.net.html.model.yml +++ b/go/ql/lib/ext/golang.org.x.net.html.model.yml @@ -3,15 +3,15 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["golang.org/x/net/html", "", False, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "NewTokenizer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "NewTokenizerFragment", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "ParseFragment", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "ParseFragmentWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "ParseWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "Render", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "NewTokenizer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "NewTokenizerFragment", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "ParseFragment", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "ParseFragmentWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "ParseWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "Render", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["golang.org/x/net/html", "", True, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["golang.org/x/net/html", "Node", True, "AppendChild", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["golang.org/x/net/html", "Node", True, "InsertBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["golang.org/x/net/html", "Tokenizer", True, "Buffered", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml b/go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml index 988559372565..5f25f73381d0 100644 --- a/go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml +++ b/go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["google.golang.org/protobuf/proto", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "", False, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["google.golang.org/protobuf/proto", "", True, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["google.golang.org/protobuf/proto", "", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["google.golang.org/protobuf/proto", "", True, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["google.golang.org/protobuf/proto", "", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["google.golang.org/protobuf/proto", "MarshalOptions", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["google.golang.org/protobuf/proto", "MarshalOptions", True, "MarshalAppend", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - ["google.golang.org/protobuf/proto", "MarshalOptions", True, "MarshalAppend", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/gopkg.in.yaml.model.yml b/go/ql/lib/ext/gopkg.in.yaml.model.yml index 34b973e67198..23af4bb12fed 100644 --- a/go/ql/lib/ext/gopkg.in.yaml.model.yml +++ b/go/ql/lib/ext/gopkg.in.yaml.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["gopkg.in/yaml", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["gopkg.in/yaml", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["gopkg.in/yaml", "", False, "UnmarshalStrict", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["gopkg.in/yaml", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["gopkg.in/yaml", "", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["gopkg.in/yaml", "", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["gopkg.in/yaml", "", True, "UnmarshalStrict", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["gopkg.in/yaml", "", True, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["gopkg.in/yaml", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["gopkg.in/yaml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["gopkg.in/yaml", "Node", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/html.model.yml b/go/ql/lib/ext/html.model.yml index 24d4e70152c2..34003fb231fa 100644 --- a/go/ql/lib/ext/html.model.yml +++ b/go/ql/lib/ext/html.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["html", "", False, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["html", "", False, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["html", "", True, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["html", "", True, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/html.template.model.yml b/go/ql/lib/ext/html.template.model.yml index 0ee840c4eaed..120ee2b304b0 100644 --- a/go/ql/lib/ext/html.template.model.yml +++ b/go/ql/lib/ext/html.template.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["html/template", "", False, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["html/template", "", False, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["html/template", "", False, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["html/template", "", False, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["html/template", "", True, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["html/template", "", True, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["html/template", "", True, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["html/template", "", True, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["html/template", "Template", True, "Execute", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - ["html/template", "Template", True, "ExecuteTemplate", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/io.fs.model.yml b/go/ql/lib/ext/io.fs.model.yml index ac709c939b61..9e9ae4f97a14 100644 --- a/go/ql/lib/ext/io.fs.model.yml +++ b/go/ql/lib/ext/io.fs.model.yml @@ -3,11 +3,11 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["io/fs", "", False, "FileInfoToDirEntry", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io/fs", "", False, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "", False, "ReadDir", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "", False, "ReadFile", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "", False, "Sub", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["io/fs", "", True, "FileInfoToDirEntry", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["io/fs", "", True, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["io/fs", "", True, "ReadDir", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["io/fs", "", True, "ReadFile", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["io/fs", "", True, "Sub", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["io/fs", "DirEntry", True, "Info", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["io/fs", "DirEntry", True, "Name", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["io/fs", "File", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] @@ -20,6 +20,6 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["io/fs", "", False, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] + - ["io/fs", "", True, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] - ["io/fs", "ReadFileFS", True, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] - - ["io/fs", "FS", True, "Open", "", "", "ReturnValue[0]", "file", "manual"] \ No newline at end of file + - ["io/fs", "FS", True, "Open", "", "", "ReturnValue[0]", "file", "manual"] diff --git a/go/ql/lib/ext/io.ioutil.model.yml b/go/ql/lib/ext/io.ioutil.model.yml index dda811c97bfb..592e45fd9feb 100644 --- a/go/ql/lib/ext/io.ioutil.model.yml +++ b/go/ql/lib/ext/io.ioutil.model.yml @@ -3,19 +3,19 @@ extensions: pack: codeql/go-all extensible: sinkModel data: - - ["io/ioutil", "", False, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] - - ["io/ioutil", "", False, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["io/ioutil", "", False, "TempDir", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["io/ioutil", "", False, "TempFile", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["io/ioutil", "", False, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["io/ioutil", "", True, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] + - ["io/ioutil", "", True, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["io/ioutil", "", True, "TempDir", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["io/ioutil", "", True, "TempFile", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["io/ioutil", "", True, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel data: - - ["io/ioutil", "", False, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io/ioutil", "", False, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["io/ioutil", "", True, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["io/ioutil", "", True, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - addsTo: pack: codeql/go-all extensible: sourceModel data: - - ["io/ioutil", "", False, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] \ No newline at end of file + - ["io/ioutil", "", True, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] diff --git a/go/ql/lib/ext/io.model.yml b/go/ql/lib/ext/io.model.yml index d9c7190026d5..40256276ea82 100644 --- a/go/ql/lib/ext/io.model.yml +++ b/go/ql/lib/ext/io.model.yml @@ -3,18 +3,18 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["io", "", False, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["io", "", False, "CopyBuffer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["io", "", False, "CopyN", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["io", "", False, "LimitReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "NewSectionReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io", "", False, "ReadAtLeast", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["io", "", False, "ReadFull", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["io", "", False, "TeeReader", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["io", "", False, "TeeReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["io", "", True, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["io", "", True, "CopyBuffer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["io", "", True, "CopyN", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["io", "", True, "LimitReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["io", "", True, "NewSectionReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["io", "", True, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["io", "", True, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["io", "", True, "ReadAtLeast", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["io", "", True, "ReadFull", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["io", "", True, "TeeReader", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["io", "", True, "TeeReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["io", "", True, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - ["io", "Reader", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["io", "ReaderAt", True, "ReadAt", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["io", "ReaderFrom", True, "ReadFrom", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml b/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml index e960b741ac79..f964e1afd423 100644 --- a/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml +++ b/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml @@ -3,26 +3,26 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_int", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_string", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_runtime_Object_To_runtime_RawExtension", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_runtime_RawExtension_To_runtime_Object", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Decode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "DecodeInto", "", "", "Argument[1]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "DeepCopyJSON", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "DeepCopyJSONValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Encode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "EncodeOrDie", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Field", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "FieldPtr", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "NewEncodable", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "NewEncodableList", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "SetField", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "UseOrCreateObject", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_Slice_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_Slice_string_To_int", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_Slice_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_Slice_string_To_string", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_runtime_Object_To_runtime_RawExtension", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_runtime_RawExtension_To_runtime_Object", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Convert_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Decode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "DecodeInto", "", "", "Argument[1]", "Argument[2]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "DeepCopyJSON", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "DeepCopyJSONValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Encode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "EncodeOrDie", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "Field", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "FieldPtr", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "NewEncodable", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "NewEncodableList", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "SetField", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["k8s.io/apimachinery/pkg/runtime", "", True, "UseOrCreateObject", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"] - ["k8s.io/apimachinery/pkg/runtime", "CacheableObject", True, "CacheEncode", "", "", "Argument[receiver]", "Argument[2]", "taint", "manual"] - ["k8s.io/apimachinery/pkg/runtime", "CacheableObject", True, "GetObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["k8s.io/apimachinery/pkg/runtime", "Decoder", True, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] diff --git a/go/ql/lib/ext/math.big.model.yml b/go/ql/lib/ext/math.big.model.yml index 2e320251b2dd..dc09561897c9 100644 --- a/go/ql/lib/ext/math.big.model.yml +++ b/go/ql/lib/ext/math.big.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["math/big", "Int", False, "Int64", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + - ["math/big", "Int", True, "Int64", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/mime.model.yml b/go/ql/lib/ext/mime.model.yml index 9027905423f7..b8f81894cd70 100644 --- a/go/ql/lib/ext/mime.model.yml +++ b/go/ql/lib/ext/mime.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["mime", "", False, "FormatMediaType", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["mime", "", False, "ParseMediaType", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] + - ["mime", "", True, "FormatMediaType", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["mime", "", True, "ParseMediaType", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - ["mime", "WordDecoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["mime", "WordDecoder", True, "DecodeHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["mime", "WordEncoder", True, "Encode", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/mime.multipart.model.yml b/go/ql/lib/ext/mime.multipart.model.yml index 410eac26af69..96e7072f611b 100644 --- a/go/ql/lib/ext/mime.multipart.model.yml +++ b/go/ql/lib/ext/mime.multipart.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["mime/multipart", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["mime/multipart", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["mime/multipart", "FileHeader", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["mime/multipart", "Part", True, "FileName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["mime/multipart", "Part", True, "FormName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/mime.quotedprintable.model.yml b/go/ql/lib/ext/mime.quotedprintable.model.yml index 7ac77332727c..aaf78da2641c 100644 --- a/go/ql/lib/ext/mime.quotedprintable.model.yml +++ b/go/ql/lib/ext/mime.quotedprintable.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["mime/quotedprintable", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["mime/quotedprintable", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/net.http.httputil.model.yml b/go/ql/lib/ext/net.http.httputil.model.yml index 783322b36ae6..7ddd5f31152c 100644 --- a/go/ql/lib/ext/net.http.httputil.model.yml +++ b/go/ql/lib/ext/net.http.httputil.model.yml @@ -3,12 +3,12 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["net/http/httputil", "", False, "DumpRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http/httputil", "", False, "DumpRequestOut", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http/httputil", "", False, "DumpResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http/httputil", "", False, "NewChunkedReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/http/httputil", "", False, "NewClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["net/http/httputil", "", False, "NewProxyClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["net/http/httputil", "", True, "DumpRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/http/httputil", "", True, "DumpRequestOut", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/http/httputil", "", True, "DumpResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/http/httputil", "", True, "NewChunkedReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/http/httputil", "", True, "NewClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["net/http/httputil", "", True, "NewProxyClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["net/http/httputil", "BufferPool", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["net/http/httputil", "BufferPool", True, "Put", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["net/http/httputil", "ClientConn", True, "Hijack", "", "", "Argument[receiver]", "ReturnValue[0..1]", "taint", "manual"] diff --git a/go/ql/lib/ext/net.http.model.yml b/go/ql/lib/ext/net.http.model.yml index f67ed795c4cb..0cebf9bfffcd 100644 --- a/go/ql/lib/ext/net.http.model.yml +++ b/go/ql/lib/ext/net.http.model.yml @@ -4,21 +4,21 @@ extensions: extensible: sinkModel data: # path-injection - - ["net/http", "", False, "ServeFile", "", "", "Argument[2]", "path-injection", "manual"] + - ["net/http", "", True, "ServeFile", "", "", "Argument[2]", "path-injection", "manual"] # url-redirection - ["net/http", "", True, "Redirect", "", "", "Argument[2]", "url-redirection[0]", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel data: - - ["net/http", "", False, "CanonicalHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/http", "", False, "Error", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["net/http", "", False, "MaxBytesReader", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["net/http", "", False, "NewRequest", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "NewRequestWithContext", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "ReadRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "ReadResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "SetCookie", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["net/http", "", True, "CanonicalHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/http", "", True, "Error", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["net/http", "", True, "MaxBytesReader", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["net/http", "", True, "NewRequest", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] + - ["net/http", "", True, "NewRequestWithContext", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] + - ["net/http", "", True, "ReadRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/http", "", True, "ReadResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/http", "", True, "SetCookie", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - ["net/http", "Header", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] - ["net/http", "Header", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["net/http", "Header", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/net.mail.model.yml b/go/ql/lib/ext/net.mail.model.yml index 0bb4ef1884bc..07532f365ff0 100644 --- a/go/ql/lib/ext/net.mail.model.yml +++ b/go/ql/lib/ext/net.mail.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["net/mail", "", False, "ParseAddress", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/mail", "", False, "ParseAddressList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/mail", "", False, "ReadMessage", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/mail", "", True, "ParseAddress", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/mail", "", True, "ParseAddressList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/mail", "", True, "ReadMessage", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["net/mail", "AddressParser", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["net/mail", "AddressParser", True, "ParseList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["net/mail", "Header", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/net.model.yml b/go/ql/lib/ext/net.model.yml index 0922b5b31d6f..231f8f850db5 100644 --- a/go/ql/lib/ext/net.model.yml +++ b/go/ql/lib/ext/net.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["net", "", False, "FileConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net", "", False, "FilePacketConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net", "", False, "JoinHostPort", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["net", "", False, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] + - ["net", "", True, "FileConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net", "", True, "FilePacketConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net", "", True, "JoinHostPort", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["net", "", True, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - ["net", "IPConn", True, "ReadFromIP", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["net", "IPConn", True, "ReadMsgIP", "", "", "Argument[receiver]", "Argument[0..1]", "taint", "manual"] - ["net", "IPConn", True, "WriteMsgIP", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/net.textproto.model.yml b/go/ql/lib/ext/net.textproto.model.yml index 63a9da4497a5..4e2e25c71bdc 100644 --- a/go/ql/lib/ext/net.textproto.model.yml +++ b/go/ql/lib/ext/net.textproto.model.yml @@ -3,11 +3,11 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["net/textproto", "", False, "CanonicalMIMEHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "NewConn", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "TrimBytes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "TrimString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/textproto", "", True, "CanonicalMIMEHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/textproto", "", True, "NewConn", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/textproto", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/textproto", "", True, "TrimBytes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/textproto", "", True, "TrimString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["net/textproto", "MIMEHeader", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] - ["net/textproto", "MIMEHeader", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["net/textproto", "MIMEHeader", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/net.url.model.yml b/go/ql/lib/ext/net.url.model.yml index 0b48aa2352c2..fe615f4bd1c3 100644 --- a/go/ql/lib/ext/net.url.model.yml +++ b/go/ql/lib/ext/net.url.model.yml @@ -3,15 +3,15 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["net/url", "", False, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "ParseQuery", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "ParseRequestURI", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "PathEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/url", "", False, "PathUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "QueryEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/url", "", False, "QueryUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "User", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/url", "", False, "UserPassword", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["net/url", "", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/url", "", True, "ParseQuery", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/url", "", True, "ParseRequestURI", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/url", "", True, "PathEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/url", "", True, "PathUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/url", "", True, "QueryEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/url", "", True, "QueryUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["net/url", "", True, "User", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["net/url", "", True, "UserPassword", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["net/url", "URL", True, "EscapedPath", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["net/url", "URL", True, "Hostname", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["net/url", "URL", True, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/os.exec.model.yml b/go/ql/lib/ext/os.exec.model.yml index 6b3a80c372c3..7ac1d3e20ad4 100644 --- a/go/ql/lib/ext/os.exec.model.yml +++ b/go/ql/lib/ext/os.exec.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/go-all extensible: sinkModel data: - - ["os/exec", "", False, "Command", "", "", "Argument[0]", "command-injection", "manual"] - - ["os/exec", "", False, "CommandContext", "", "", "Argument[1]", "command-injection", "manual"] + - ["os/exec", "", True, "Command", "", "", "Argument[0]", "command-injection", "manual"] + - ["os/exec", "", True, "CommandContext", "", "", "Argument[1]", "command-injection", "manual"] diff --git a/go/ql/lib/ext/os.model.yml b/go/ql/lib/ext/os.model.yml index 3d87eefe43f7..16c1d68cf3bc 100644 --- a/go/ql/lib/ext/os.model.yml +++ b/go/ql/lib/ext/os.model.yml @@ -4,41 +4,41 @@ extensions: extensible: sinkModel data: # path-injection - - ["os", "", False, "Chdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Chmod", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Chown", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Chtimes", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Lchown", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Link", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "Lstat", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "NewFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["os", "", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Readlink", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Rename", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "Stat", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Symlink", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "Truncate", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "DirFS", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "MkdirTemp", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "CreateTemp", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Chdir", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Chmod", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Chown", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Chtimes", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Lchown", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Link", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["os", "", True, "Lstat", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "NewFile", "", "", "Argument[1]", "path-injection", "manual"] + - ["os", "", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Readlink", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Rename", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["os", "", True, "Stat", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "Symlink", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["os", "", True, "Truncate", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "DirFS", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"] + - ["os", "", True, "MkdirTemp", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["os", "", True, "CreateTemp", "", "", "Argument[0..1]", "path-injection", "manual"] + - ["os", "", True, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"] # command-injection - - ["os", "", False, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"] + - ["os", "", True, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel data: - - ["os", "", False, "Expand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["os", "", False, "ExpandEnv", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["os", "", False, "NewFile", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["os", "", True, "Expand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["os", "", True, "ExpandEnv", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["os", "", True, "NewFile", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["os", "File", True, "Fd", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["os", "File", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["os", "File", True, "ReadAt", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] @@ -46,13 +46,13 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["os", "", False, "Environ", "", "", "ReturnValue", "environment", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["os", "", False, "ExpandEnv", "", "", "ReturnValue", "environment", "manual"] - - ["os", "", False, "Getenv", "", "", "ReturnValue", "environment", "manual"] - - ["os", "", False, "LookupEnv", "", "", "ReturnValue[0]", "environment", "manual"] - - ["os", "", False, "Open", "", "", "ReturnValue[0]", "file", "manual"] - - ["os", "", False, "OpenFile", "", "", "ReturnValue[0]", "file", "manual"] - - ["os", "", False, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] - - ["os", "", False, "UserCacheDir", "", "", "ReturnValue[0]", "environment", "manual"] - - ["os", "", False, "UserConfigDir", "", "", "ReturnValue[0]", "environment", "manual"] - - ["os", "", False, "UserHomeDir", "", "", "ReturnValue[0]", "environment", "manual"] + - ["os", "", True, "Environ", "", "", "ReturnValue", "environment", "manual"] # TODO: when sources can have access paths, use .ArrayElement + - ["os", "", True, "ExpandEnv", "", "", "ReturnValue", "environment", "manual"] + - ["os", "", True, "Getenv", "", "", "ReturnValue", "environment", "manual"] + - ["os", "", True, "LookupEnv", "", "", "ReturnValue[0]", "environment", "manual"] + - ["os", "", True, "Open", "", "", "ReturnValue[0]", "file", "manual"] + - ["os", "", True, "OpenFile", "", "", "ReturnValue[0]", "file", "manual"] + - ["os", "", True, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] + - ["os", "", True, "UserCacheDir", "", "", "ReturnValue[0]", "environment", "manual"] + - ["os", "", True, "UserConfigDir", "", "", "ReturnValue[0]", "environment", "manual"] + - ["os", "", True, "UserHomeDir", "", "", "ReturnValue[0]", "environment", "manual"] diff --git a/go/ql/lib/ext/path.filepath.model.yml b/go/ql/lib/ext/path.filepath.model.yml index 15bcb7d386d8..e997b2dcead7 100644 --- a/go/ql/lib/ext/path.filepath.model.yml +++ b/go/ql/lib/ext/path.filepath.model.yml @@ -3,16 +3,16 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["path/filepath", "", False, "Abs", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "EvalSymlinks", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "FromSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Rel", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["path/filepath", "", False, "SplitList", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "ToSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "VolumeName", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "Abs", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["path/filepath", "", True, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "EvalSymlinks", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["path/filepath", "", True, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "FromSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["path/filepath", "", True, "Rel", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] + - ["path/filepath", "", True, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] + - ["path/filepath", "", True, "SplitList", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "ToSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path/filepath", "", True, "VolumeName", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/path.model.yml b/go/ql/lib/ext/path.model.yml index 5a494b24d7ca..945aa8d741b9 100644 --- a/go/ql/lib/ext/path.model.yml +++ b/go/ql/lib/ext/path.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["path", "", False, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] + - ["path", "", True, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path", "", True, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path", "", True, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path", "", True, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["path", "", True, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] diff --git a/go/ql/lib/ext/reflect.model.yml b/go/ql/lib/ext/reflect.model.yml index 75b207f73a0f..19c76216186e 100644 --- a/go/ql/lib/ext/reflect.model.yml +++ b/go/ql/lib/ext/reflect.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["reflect", "", False, "AppendSlice", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["reflect", "", False, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["reflect", "", False, "Indirect", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["reflect", "", False, "ValueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["reflect", "", True, "AppendSlice", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["reflect", "", True, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["reflect", "", True, "Indirect", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["reflect", "", True, "ValueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["reflect", "MapIter", True, "Key", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["reflect", "MapIter", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["reflect", "StructTag", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/regexp.model.yml b/go/ql/lib/ext/regexp.model.yml index ffb6205657a6..c5a7ba001b2a 100644 --- a/go/ql/lib/ext/regexp.model.yml +++ b/go/ql/lib/ext/regexp.model.yml @@ -17,7 +17,7 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["regexp", "", False, "QuoteMeta", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["regexp", "", True, "QuoteMeta", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["regexp", "Regexp", True, "Expand", "", "", "Argument[1..2]", "Argument[0]", "taint", "manual"] - ["regexp", "Regexp", True, "Expand", "", "", "Argument[1..2]", "ReturnValue", "taint", "manual"] - ["regexp", "Regexp", True, "ExpandString", "", "", "Argument[1..2]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/sort.model.yml b/go/ql/lib/ext/sort.model.yml index 36d0070de66d..132b81728dff 100644 --- a/go/ql/lib/ext/sort.model.yml +++ b/go/ql/lib/ext/sort.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["sort", "", False, "Reverse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["sort", "", True, "Reverse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/strconv.model.yml b/go/ql/lib/ext/strconv.model.yml index 65203b121064..50df3745c96d 100644 --- a/go/ql/lib/ext/strconv.model.yml +++ b/go/ql/lib/ext/strconv.model.yml @@ -3,12 +3,12 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["strconv", "", False, "AppendQuote", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "AppendQuoteToASCII", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "AppendQuoteToGraphic", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "Quote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "QuoteToASCII", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "QuoteToGraphic", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "QuotedPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["strconv", "", False, "Unquote", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["strconv", "", False, "UnquoteChar", "", "", "Argument[0]", "ReturnValue[2]", "taint", "manual"] + - ["strconv", "", True, "AppendQuote", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["strconv", "", True, "AppendQuoteToASCII", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["strconv", "", True, "AppendQuoteToGraphic", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["strconv", "", True, "Quote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strconv", "", True, "QuoteToASCII", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strconv", "", True, "QuoteToGraphic", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strconv", "", True, "QuotedPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["strconv", "", True, "Unquote", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["strconv", "", True, "UnquoteChar", "", "", "Argument[0]", "ReturnValue[2]", "taint", "manual"] diff --git a/go/ql/lib/ext/strings.model.yml b/go/ql/lib/ext/strings.model.yml index 01015b31517e..5fcf4b43e961 100644 --- a/go/ql/lib/ext/strings.model.yml +++ b/go/ql/lib/ext/strings.model.yml @@ -3,37 +3,37 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["strings", "", False, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "FieldsFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "FieldsFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["strings", "", True, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["strings", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["strings", "Replacer", True, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["strings", "Replacer", True, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/sync.atomic.model.yml b/go/ql/lib/ext/sync.atomic.model.yml index 1dd7d995566a..66e1556b199b 100644 --- a/go/ql/lib/ext/sync.atomic.model.yml +++ b/go/ql/lib/ext/sync.atomic.model.yml @@ -3,18 +3,18 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["sync/atomic", "", False, "AddUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "AddUintptr", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "CompareAndSwapPointer", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "CompareAndSwapUintptr", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "LoadPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "LoadUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "StorePointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "StoreUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["sync/atomic", "", True, "AddUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["sync/atomic", "", True, "AddUintptr", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + - ["sync/atomic", "", True, "CompareAndSwapPointer", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] + - ["sync/atomic", "", True, "CompareAndSwapUintptr", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] + - ["sync/atomic", "", True, "LoadPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["sync/atomic", "", True, "LoadUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["sync/atomic", "", True, "StorePointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["sync/atomic", "", True, "StoreUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["sync/atomic", "", True, "SwapPointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["sync/atomic", "", True, "SwapPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["sync/atomic", "", True, "SwapUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["sync/atomic", "", True, "SwapUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["sync/atomic", "Pointer", True, "Load", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["sync/atomic", "Pointer", True, "Store", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/syscall.model.yml b/go/ql/lib/ext/syscall.model.yml index 9d65f2bedbd3..23617b1cd529 100644 --- a/go/ql/lib/ext/syscall.model.yml +++ b/go/ql/lib/ext/syscall.model.yml @@ -3,20 +3,20 @@ extensions: pack: codeql/go-all extensible: sinkModel data: - - ["syscall", "", False, "Exec", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "ForkExec", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "CreateProcess", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "CreateProcessAsUser", "", "", "Argument[1]", "command-injection", "manual"] + - ["syscall", "", True, "Exec", "", "", "Argument[0]", "command-injection", "manual"] + - ["syscall", "", True, "ForkExec", "", "", "Argument[0]", "command-injection", "manual"] + - ["syscall", "", True, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"] + - ["syscall", "", True, "CreateProcess", "", "", "Argument[0]", "command-injection", "manual"] + - ["syscall", "", True, "CreateProcessAsUser", "", "", "Argument[1]", "command-injection", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel data: - - ["syscall", "", False, "BytePtrFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["syscall", "", False, "ByteSliceFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["syscall", "", False, "StringBytePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["syscall", "", False, "StringByteSlice", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["syscall", "", False, "StringSlicePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["syscall", "", True, "BytePtrFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["syscall", "", True, "ByteSliceFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + - ["syscall", "", True, "StringBytePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["syscall", "", True, "StringByteSlice", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["syscall", "", True, "StringSlicePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["syscall", "Conn", True, "SyscallConn", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["syscall", "RawConn", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - ["syscall", "RawConn", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] @@ -24,5 +24,5 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["syscall", "", False, "Environ", "", "", "ReturnValue", "environment", "manual"] - - ["syscall", "", False, "Getenv", "", "", "ReturnValue[0]", "environment", "manual"] \ No newline at end of file + - ["syscall", "", True, "Environ", "", "", "ReturnValue", "environment", "manual"] + - ["syscall", "", True, "Getenv", "", "", "ReturnValue[0]", "environment", "manual"] diff --git a/go/ql/lib/ext/text.template.model.yml b/go/ql/lib/ext/text.template.model.yml index 669af3a8854f..b12fea65133f 100644 --- a/go/ql/lib/ext/text.template.model.yml +++ b/go/ql/lib/ext/text.template.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/go-all extensible: summaryModel data: - - ["text/template", "", False, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["text/template", "", False, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["text/template", "", False, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["text/template", "", False, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["text/template", "", True, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["text/template", "", True, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["text/template", "", True, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + - ["text/template", "", True, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["text/template", "Template", True, "Execute", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - ["text/template", "Template", True, "ExecuteTemplate", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml index e64313916ce8..9bcf0cb83add 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml @@ -9,7 +9,7 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + - ["github.com/nonexistent/sources", "", True, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] + - ["github.com/nonexistent/sources", "", True, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCustom", "", "", "ReturnValue", "custom", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml index fe7569e96003..100989327aa3 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml @@ -10,7 +10,7 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + - ["github.com/nonexistent/sources", "", True, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] + - ["github.com/nonexistent/sources", "", True, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCustom", "", "", "ReturnValue", "custom", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml index 2c8e9d2530fe..18904b1761cc 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml @@ -10,8 +10,7 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] - + - ["github.com/nonexistent/sources", "", True, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] + - ["github.com/nonexistent/sources", "", True, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCustom", "", "", "ReturnValue", "custom", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml index acac1a4e4f07..340050b6bc01 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml @@ -10,8 +10,7 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] - + - ["github.com/nonexistent/sources", "", True, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] + - ["github.com/nonexistent/sources", "", True, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCustom", "", "", "ReturnValue", "custom", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml index c61a23e0e647..12bd819ac3bf 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml @@ -11,8 +11,7 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] - + - ["github.com/nonexistent/sources", "", True, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] + - ["github.com/nonexistent/sources", "", True, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCustom", "", "", "ReturnValue", "custom", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml index cc5a7847fd84..7c9aa3d7f5d8 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml @@ -11,7 +11,7 @@ extensions: pack: codeql/go-all extensible: sourceModel data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + - ["github.com/nonexistent/sources", "", True, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] + - ["github.com/nonexistent/sources", "", True, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCustom", "", "", "ReturnValue", "custom", "manual"] + - ["github.com/nonexistent/sources", "", True, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] From d31700cf92f5af2201034f5aefe531e489a54332 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 12 Nov 2024 11:34:29 +0000 Subject: [PATCH 2/3] Accept changes in models in .expected files --- .../DecompressionBombs.expected | 6 ++-- .../HTMLTemplateEscapingPassthrough.expected | 2 +- go/ql/test/experimental/CWE-918/SSRF.expected | 6 ++-- .../go/dataflow/HiddenNodes/test.expected | 2 +- .../threat-models-flowtest2.expected | 2 +- .../threat-models-flowtest3.expected | 6 ++-- .../threat-models-flowtest4.expected | 8 ++--- .../threat-models-flowtest5.expected | 4 +-- .../threat-models-flowtest6.expected | 4 +-- .../go/frameworks/Beego/ReflectedXss.expected | 34 +++++++++---------- .../go/frameworks/Beego/TaintedPath.expected | 12 +++---- .../go/frameworks/Echo/ReflectedXss.expected | 2 +- .../go/frameworks/Echo/TaintedPath.expected | 4 +-- .../go/frameworks/Encoding/jsoniter.expected | 6 ++-- .../go/frameworks/Gin/TaintedPath.expected | 8 ++--- .../frameworks/Gorestful/gorestful.expected | 2 +- .../go/frameworks/Revel/TaintedPath.expected | 2 +- .../frameworks/Twirp/RequestForgery.expected | 4 +-- .../frameworks/XNetHtml/ReflectedXss.expected | 14 ++++---- .../frameworks/XNetHtml/SqlInjection.expected | 2 +- .../UnhandledCloseWritableHandle.expected | 2 +- .../Security/CWE-022/TaintedPath.expected | 4 +-- .../CWE-022/UnsafeUnzipSymlink.expected | 2 +- .../Security/CWE-022/ZipSlip.expected | 10 +++--- .../CWE-078/CommandInjection.expected | 8 ++--- .../Security/CWE-078/StoredCommand.expected | 2 +- .../Security/CWE-079/ReflectedXss.expected | 4 +-- .../Security/CWE-089/SqlInjection.expected | 4 +-- .../Security/CWE-089/StringBreak.expected | 2 +- .../CWE-190/AllocationSizeOverflow.expected | 2 +- .../Security/CWE-327/UnsafeTLS.expected | 6 ++-- .../InsecureRandomness.expected | 2 +- .../BadRedirectCheck.expected | 2 +- .../Security/CWE-640/EmailInjection.expected | 4 +-- .../Security/CWE-643/XPathInjection.expected | 2 +- 35 files changed, 93 insertions(+), 93 deletions(-) diff --git a/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected b/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected index 34703cdeef4e..29cca2709724 100644 --- a/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected +++ b/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected @@ -233,10 +233,10 @@ edges models | 1 | Source: net/http; Request; true; Body; ; ; ; remote; manual | | 2 | Source: net/http; Request; true; FormValue; ; ; ReturnValue; remote; manual | -| 3 | Summary: archive/tar; ; false; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | +| 3 | Summary: archive/tar; ; true; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | | 4 | Summary: archive/zip; File; true; Open; ; ; Argument[receiver]; ReturnValue[0]; taint; manual | -| 5 | Summary: bytes; ; false; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | -| 6 | Summary: io; ; false; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 5 | Summary: bytes; ; true; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | +| 6 | Summary: io; ; true; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | nodes | test.go:59:16:59:44 | call to FormValue | semmle.label | call to FormValue | | test.go:60:15:60:26 | selection of Body | semmle.label | selection of Body | diff --git a/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected b/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected index c91fe813e9fe..93d5d1d24ad1 100644 --- a/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected +++ b/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected @@ -35,7 +35,7 @@ edges | HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | provenance | MaD:2 | models | 1 | Source: net/http; Request; true; UserAgent; ; ; ReturnValue; remote; manual | -| 2 | Summary: html/template; ; false; HTMLEscapeString; ; ; Argument[0]; ReturnValue; taint; manual | +| 2 | Summary: html/template; ; true; HTMLEscapeString; ; ; Argument[0]; ReturnValue; taint; manual | nodes | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | semmle.label | type conversion | | HTMLTemplateEscapingPassthrough.go:29:26:29:40 | call to UserAgent | semmle.label | call to UserAgent | diff --git a/go/ql/test/experimental/CWE-918/SSRF.expected b/go/ql/test/experimental/CWE-918/SSRF.expected index f4e1d1c9930b..6e2e9a394ccb 100644 --- a/go/ql/test/experimental/CWE-918/SSRF.expected +++ b/go/ql/test/experimental/CWE-918/SSRF.expected @@ -69,12 +69,12 @@ models | 7 | Source: net/http; Request; true; FormValue; ; ; ReturnValue; remote; manual | | 8 | Source: net/http; Request; true; Referer; ; ; ReturnValue; remote; manual | | 9 | Source: net/http; Request; true; URL; ; ; ; remote; manual | -| 10 | Summary: encoding/json; ; false; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | +| 10 | Summary: encoding/json; ; true; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | | 11 | Summary: fmt; ; true; Sprintf; ; ; Argument[1].ArrayElement; ReturnValue; taint; manual | -| 12 | Summary: io/ioutil; ; false; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 12 | Summary: io/ioutil; ; true; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | | 13 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | | 14 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | -| 15 | Summary: strings; ; false; TrimPrefix; ; ; Argument[0]; ReturnValue; taint; manual | +| 15 | Summary: strings; ; true; TrimPrefix; ; ; Argument[0]; ReturnValue; taint; manual | nodes | builtin.go:19:12:19:34 | call to FormValue | semmle.label | call to FormValue | | builtin.go:22:21:22:62 | ...+... | semmle.label | ...+... | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected b/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected index 13aa3515962b..0a6930c8c2ec 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected @@ -1,5 +1,5 @@ models -| 1 | Summary: archive/tar; ; false; FileInfoHeader; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 1 | Summary: archive/tar; ; true; FileInfoHeader; ; ; Argument[0]; ReturnValue[0]; taint; manual | edges | test.go:14:8:14:15 | call to source | test.go:15:34:15:35 | fi | provenance | | | test.go:15:2:15:44 | ... := ...[0] | test.go:16:7:16:12 | header | provenance | | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected index cf59efbb6ac4..bc4cbe638fef 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected @@ -1,5 +1,5 @@ models -| 1 | Source: github.com/nonexistent/sources; ; false; ExecuteQuery; ; ; ReturnValue; database; manual | +| 1 | Source: github.com/nonexistent/sources; ; true; ExecuteQuery; ; ; ReturnValue; database; manual | | 2 | Source: net/http; Request; true; URL; ; ; ; remote; manual | | 3 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | | 4 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected index c3138596ac22..644ab61c9c09 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected @@ -1,7 +1,7 @@ models -| 1 | Source: github.com/nonexistent/sources; ; false; ExecuteQuery; ; ; ReturnValue; database; manual | -| 2 | Source: github.com/nonexistent/sources; ; false; GetCliArg; ; ; ReturnValue; commandargs; manual | -| 3 | Source: github.com/nonexistent/sources; ; false; ReadEnvironment; ; ; ReturnValue; environment; manual | +| 1 | Source: github.com/nonexistent/sources; ; true; ExecuteQuery; ; ; ReturnValue; database; manual | +| 2 | Source: github.com/nonexistent/sources; ; true; GetCliArg; ; ; ReturnValue; commandargs; manual | +| 3 | Source: github.com/nonexistent/sources; ; true; ReadEnvironment; ; ; ReturnValue; environment; manual | | 4 | Source: net/http; Request; true; URL; ; ; ; remote; manual | | 5 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | | 6 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected index 37db602757c4..e28ad58f2ea8 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected @@ -1,8 +1,8 @@ models -| 1 | Source: github.com/nonexistent/sources; ; false; ExecuteQuery; ; ; ReturnValue; database; manual | -| 2 | Source: github.com/nonexistent/sources; ; false; GetCliArg; ; ; ReturnValue; commandargs; manual | -| 3 | Source: github.com/nonexistent/sources; ; false; GetCustom; ; ; ReturnValue; custom; manual | -| 4 | Source: github.com/nonexistent/sources; ; false; ReadEnvironment; ; ; ReturnValue; environment; manual | +| 1 | Source: github.com/nonexistent/sources; ; true; ExecuteQuery; ; ; ReturnValue; database; manual | +| 2 | Source: github.com/nonexistent/sources; ; true; GetCliArg; ; ; ReturnValue; commandargs; manual | +| 3 | Source: github.com/nonexistent/sources; ; true; GetCustom; ; ; ReturnValue; custom; manual | +| 4 | Source: github.com/nonexistent/sources; ; true; ReadEnvironment; ; ; ReturnValue; environment; manual | | 5 | Source: net/http; Request; true; URL; ; ; ; remote; manual | | 6 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | | 7 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected index 92b35dc609b6..eac3843cfaeb 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected @@ -1,6 +1,6 @@ models -| 1 | Source: github.com/nonexistent/sources; ; false; GetCliArg; ; ; ReturnValue; commandargs; manual | -| 2 | Source: github.com/nonexistent/sources; ; false; ReadEnvironment; ; ; ReturnValue; environment; manual | +| 1 | Source: github.com/nonexistent/sources; ; true; GetCliArg; ; ; ReturnValue; commandargs; manual | +| 2 | Source: github.com/nonexistent/sources; ; true; ReadEnvironment; ; ; ReturnValue; environment; manual | | 3 | Source: net/http; Request; true; URL; ; ; ; remote; manual | | 4 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | | 5 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected index a5a23bd07251..48b374d8d9c0 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected @@ -1,6 +1,6 @@ models -| 1 | Source: github.com/nonexistent/sources; ; false; ExecuteQuery; ; ; ReturnValue; database; manual | -| 2 | Source: github.com/nonexistent/sources; ; false; GetCliArg; ; ; ReturnValue; commandargs; manual | +| 1 | Source: github.com/nonexistent/sources; ; true; ExecuteQuery; ; ; ReturnValue; database; manual | +| 2 | Source: github.com/nonexistent/sources; ; true; GetCliArg; ; ; ReturnValue; commandargs; manual | | 3 | Source: net/http; Request; true; URL; ; ; ; remote; manual | | 4 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | | 5 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected index aa0345f221e1..0d0a445d860c 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected @@ -176,26 +176,26 @@ models | 19 | Source: group:beego; Controller; true; Input; ; ; ReturnValue[0]; remote; manual | | 20 | Source: group:beego; Controller; true; ParseForm; ; ; Argument[0]; remote; manual | | 21 | Source: net/http; Request; true; Form; ; ; ; remote; manual | -| 22 | Summary: group:beego-utils; ; false; SliceChunk; ; ; Argument[0]; ReturnValue; taint; manual | -| 23 | Summary: group:beego-utils; ; false; SliceDiff; ; ; Argument[0]; ReturnValue; taint; manual | -| 24 | Summary: group:beego-utils; ; false; SliceFilter; ; ; Argument[0]; ReturnValue; taint; manual | -| 25 | Summary: group:beego-utils; ; false; SliceIntersect; ; ; Argument[0..1]; ReturnValue; taint; manual | -| 26 | Summary: group:beego-utils; ; false; SliceMerge; ; ; Argument[0..1]; ReturnValue; taint; manual | -| 27 | Summary: group:beego-utils; ; false; SlicePad; ; ; Argument[0..2]; ReturnValue; taint; manual | -| 28 | Summary: group:beego-utils; ; false; SliceRand; ; ; Argument[0]; ReturnValue; taint; manual | -| 29 | Summary: group:beego-utils; ; false; SliceReduce; ; ; Argument[0]; ReturnValue; taint; manual | -| 30 | Summary: group:beego-utils; ; false; SliceShuffle; ; ; Argument[0]; ReturnValue; taint; manual | -| 31 | Summary: group:beego-utils; ; false; SliceUnique; ; ; Argument[0]; ReturnValue; taint; manual | +| 22 | Summary: group:beego-utils; ; true; SliceChunk; ; ; Argument[0]; ReturnValue; taint; manual | +| 23 | Summary: group:beego-utils; ; true; SliceDiff; ; ; Argument[0]; ReturnValue; taint; manual | +| 24 | Summary: group:beego-utils; ; true; SliceFilter; ; ; Argument[0]; ReturnValue; taint; manual | +| 25 | Summary: group:beego-utils; ; true; SliceIntersect; ; ; Argument[0..1]; ReturnValue; taint; manual | +| 26 | Summary: group:beego-utils; ; true; SliceMerge; ; ; Argument[0..1]; ReturnValue; taint; manual | +| 27 | Summary: group:beego-utils; ; true; SlicePad; ; ; Argument[0..2]; ReturnValue; taint; manual | +| 28 | Summary: group:beego-utils; ; true; SliceRand; ; ; Argument[0]; ReturnValue; taint; manual | +| 29 | Summary: group:beego-utils; ; true; SliceReduce; ; ; Argument[0]; ReturnValue; taint; manual | +| 30 | Summary: group:beego-utils; ; true; SliceShuffle; ; ; Argument[0]; ReturnValue; taint; manual | +| 31 | Summary: group:beego-utils; ; true; SliceUnique; ; ; Argument[0]; ReturnValue; taint; manual | | 32 | Summary: group:beego-utils; BeeMap; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | | 33 | Summary: group:beego-utils; BeeMap; true; Items; ; ; Argument[receiver]; ReturnValue; taint; manual | | 34 | Summary: group:beego-utils; BeeMap; true; Set; ; ; Argument[1]; Argument[receiver]; taint; manual | -| 35 | Summary: group:beego; ; false; HTML2str; ; ; Argument[0]; ReturnValue; taint; manual | -| 36 | Summary: group:beego; ; false; Htmlunquote; ; ; Argument[0]; ReturnValue; taint; manual | -| 37 | Summary: group:beego; ; false; MapGet; ; ; Argument[0]; ReturnValue[0]; taint; manual | -| 38 | Summary: group:beego; ; false; ParseForm; ; ; Argument[0]; Argument[1]; taint; manual | -| 39 | Summary: group:beego; ; false; Str2html; ; ; Argument[0]; ReturnValue; taint; manual | -| 40 | Summary: group:beego; ; false; Substr; ; ; Argument[0]; ReturnValue; taint; manual | -| 41 | Summary: io/ioutil; ; false; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 35 | Summary: group:beego; ; true; HTML2str; ; ; Argument[0]; ReturnValue; taint; manual | +| 36 | Summary: group:beego; ; true; Htmlunquote; ; ; Argument[0]; ReturnValue; taint; manual | +| 37 | Summary: group:beego; ; true; MapGet; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 38 | Summary: group:beego; ; true; ParseForm; ; ; Argument[0]; Argument[1]; taint; manual | +| 39 | Summary: group:beego; ; true; Str2html; ; ; Argument[0]; ReturnValue; taint; manual | +| 40 | Summary: group:beego; ; true; Substr; ; ; Argument[0]; ReturnValue; taint; manual | +| 41 | Summary: io/ioutil; ; true; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | nodes | test.go:33:6:33:10 | definition of bound | semmle.label | definition of bound | | test.go:35:13:35:30 | type conversion | semmle.label | type conversion | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected index 796143aee9e7..875d267025e2 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected @@ -16,14 +16,14 @@ edges | test.go:340:15:340:26 | call to Data | test.go:342:53:342:61 | untrusted | provenance | Src:MaD:6 Sink:MaD:4 | | test.go:340:15:340:26 | call to Data | test.go:344:23:344:31 | untrusted | provenance | Src:MaD:6 Sink:MaD:1 | models -| 1 | Sink: group:beego-context; BeegoOutput; false; Download; ; ; Argument[0]; path-injection; manual | -| 2 | Sink: group:beego; ; false; Walk; ; ; Argument[1]; path-injection; manual | -| 3 | Sink: group:beego; Controller; false; SaveToFile; ; ; Argument[1]; path-injection; manual | -| 4 | Sink: group:beego; Controller; false; SaveToFileWithBuffer; ; ; Argument[1]; path-injection; manual | -| 5 | Sink: group:beego; FileSystem; false; Open; ; ; Argument[0]; path-injection; manual | +| 1 | Sink: group:beego-context; BeegoOutput; true; Download; ; ; Argument[0]; path-injection; manual | +| 2 | Sink: group:beego; ; true; Walk; ; ; Argument[1]; path-injection; manual | +| 3 | Sink: group:beego; Controller; true; SaveToFile; ; ; Argument[1]; path-injection; manual | +| 4 | Sink: group:beego; Controller; true; SaveToFileWithBuffer; ; ; Argument[1]; path-injection; manual | +| 5 | Sink: group:beego; FileSystem; true; Open; ; ; Argument[0]; path-injection; manual | | 6 | Source: group:beego-context; BeegoInput; true; Data; ; ; ReturnValue[0]; remote; manual | | 7 | Source: group:beego-context; BeegoInput; true; RequestBody; ; ; ; remote; manual | -| 8 | Summary: encoding/json; ; false; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | +| 8 | Summary: encoding/json; ; true; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | nodes | test.go:215:15:215:26 | call to Data | semmle.label | call to Data | | test.go:216:18:216:26 | untrusted | semmle.label | untrusted | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected index 61b8706f4e05..c115d4f86431 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected @@ -74,7 +74,7 @@ models | 16 | Summary: io; Reader; true; Read; ; ; Argument[receiver]; Argument[0]; taint; manual | | 17 | Summary: mime/multipart; FileHeader; true; Open; ; ; Argument[receiver]; ReturnValue[0]; taint; manual | | 18 | Summary: os; File; true; Read; ; ; Argument[receiver]; Argument[0]; taint; manual | -| 19 | Summary: strings; ; false; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | +| 19 | Summary: strings; ; true; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | nodes | test.go:15:11:15:32 | call to Param | semmle.label | call to Param | | test.go:16:16:16:20 | param | semmle.label | param | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected index aaefd9799bec..c579c480fb3e 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected @@ -5,8 +5,8 @@ edges | test.go:221:15:221:38 | call to QueryParam | test.go:222:17:222:24 | filepath | provenance | Src:MaD:3 Sink:MaD:2 | | test.go:225:15:225:38 | call to QueryParam | test.go:226:23:226:30 | filepath | provenance | Src:MaD:3 Sink:MaD:1 | models -| 1 | Sink: github.com/labstack/echo; Context; false; Attachment; ; ; Argument[0]; path-injection; manual | -| 2 | Sink: github.com/labstack/echo; Context; false; File; ; ; Argument[0]; path-injection; manual | +| 1 | Sink: github.com/labstack/echo; Context; true; Attachment; ; ; Argument[0]; path-injection; manual | +| 2 | Sink: github.com/labstack/echo; Context; true; File; ; ; Argument[0]; path-injection; manual | | 3 | Source: github.com/labstack/echo; Context; true; QueryParam; ; ; ReturnValue[0]; remote; manual | nodes | test.go:221:15:221:38 | call to QueryParam | semmle.label | call to QueryParam | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected index 0e79c3135b08..9ff49f5b9291 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected @@ -1,7 +1,7 @@ models -| 1 | Sink: os/exec; ; false; Command; ; ; Argument[0]; command-injection; manual | -| 2 | Summary: github.com/json-iterator/go; ; false; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | -| 3 | Summary: github.com/json-iterator/go; ; false; UnmarshalFromString; ; ; Argument[0]; Argument[1]; taint; manual | +| 1 | Sink: os/exec; ; true; Command; ; ; Argument[0]; command-injection; manual | +| 2 | Summary: github.com/json-iterator/go; ; true; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | +| 3 | Summary: github.com/json-iterator/go; ; true; UnmarshalFromString; ; ; Argument[0]; Argument[1]; taint; manual | | 4 | Summary: github.com/json-iterator/go; API; true; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | | 5 | Summary: github.com/json-iterator/go; API; true; UnmarshalFromString; ; ; Argument[0]; Argument[1]; taint; manual | edges diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected index e73729936bd1..d16514649f3c 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected @@ -9,10 +9,10 @@ edges | Gin.go:24:15:24:33 | call to Query | Gin.go:27:20:27:27 | filepath | provenance | Src:MaD:5 Sink:MaD:2 | | Gin.go:24:15:24:33 | call to Query | Gin.go:29:32:29:39 | filepath | provenance | Src:MaD:5 Sink:MaD:3 | models -| 1 | Sink: github.com/gin-gonic/gin; Context; false; File; ; ; Argument[0]; path-injection; manual | -| 2 | Sink: github.com/gin-gonic/gin; Context; false; FileAttachment; ; ; Argument[0]; path-injection; manual | -| 3 | Sink: github.com/gin-gonic/gin; Context; false; SaveUploadedFile; ; ; Argument[1]; path-injection; manual | -| 4 | Sink: net/http; ; false; ServeFile; ; ; Argument[2]; path-injection; manual | +| 1 | Sink: github.com/gin-gonic/gin; Context; true; File; ; ; Argument[0]; path-injection; manual | +| 2 | Sink: github.com/gin-gonic/gin; Context; true; FileAttachment; ; ; Argument[0]; path-injection; manual | +| 3 | Sink: github.com/gin-gonic/gin; Context; true; SaveUploadedFile; ; ; Argument[1]; path-injection; manual | +| 4 | Sink: net/http; ; true; ServeFile; ; ; Argument[2]; path-injection; manual | | 5 | Source: github.com/gin-gonic/gin; Context; true; Query; ; ; ReturnValue; remote; manual | nodes | Gin.go:24:15:24:33 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected b/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected index 4cdacabe873d..7ec09bf530d4 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected @@ -1,5 +1,5 @@ models -| 1 | Sink: os/exec; ; false; Command; ; ; Argument[0]; command-injection; manual | +| 1 | Sink: os/exec; ; true; Command; ; ; Argument[0]; command-injection; manual | | 2 | Source: github.com/emicklei/go-restful; Request; true; BodyParameter; ; ; ReturnValue[0]; remote; manual | | 3 | Source: github.com/emicklei/go-restful; Request; true; PathParameters; ; ; ReturnValue; remote; manual | | 4 | Source: github.com/emicklei/go-restful; Request; true; QueryParameters; ; ; ReturnValue; remote; manual | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected index 7337f636c477..7706161f2f27 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected @@ -8,7 +8,7 @@ edges | EndToEnd.go:64:26:64:38 | selection of Form | EndToEnd.go:64:26:64:55 | call to Get | provenance | MaD:4 Sink:MaD:1 | models | 1 | Sink: group:revel; Controller; true; RenderFileName; ; ; Argument[0]; path-injection; manual | -| 2 | Sink: os; ; false; Open; ; ; Argument[0]; path-injection; manual | +| 2 | Sink: os; ; true; Open; ; ; Argument[0]; path-injection; manual | | 3 | Source: group:revel; Controller; true; Params; ; ; ; remote; manual | | 4 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | nodes diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected index 82c4c950c6e4..648650dcb57c 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected @@ -25,8 +25,8 @@ edges | server/main.go:19:56:19:61 | definition of params [Return] | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | models | 1 | Source: net/http; Request; true; Body; ; ; ; remote; manual | -| 2 | Summary: google.golang.org/protobuf/proto; ; false; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | -| 3 | Summary: io; ; false; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 2 | Summary: google.golang.org/protobuf/proto; ; true; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | +| 3 | Summary: io; ; true; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | nodes | client/main.go:16:35:16:78 | &... | semmle.label | &... | | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | semmle.label | definition of typedReq | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected index b94733d5054b..bb1af2a7a3f3 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected @@ -71,13 +71,13 @@ edges models | 1 | Source: net/http; Request; true; Body; ; ; ; remote; manual | | 2 | Source: net/http; Request; true; URL; ; ; ; remote; manual | -| 3 | Summary: golang.org/x/net/html; ; false; NewTokenizer; ; ; Argument[0]; ReturnValue; taint; manual | -| 4 | Summary: golang.org/x/net/html; ; false; NewTokenizerFragment; ; ; Argument[0]; ReturnValue; taint; manual | -| 5 | Summary: golang.org/x/net/html; ; false; Parse; ; ; Argument[0]; ReturnValue[0]; taint; manual | -| 6 | Summary: golang.org/x/net/html; ; false; ParseFragment; ; ; Argument[0]; ReturnValue[0]; taint; manual | -| 7 | Summary: golang.org/x/net/html; ; false; ParseFragmentWithOptions; ; ; Argument[0]; ReturnValue[0]; taint; manual | -| 8 | Summary: golang.org/x/net/html; ; false; ParseWithOptions; ; ; Argument[0]; ReturnValue[0]; taint; manual | -| 9 | Summary: golang.org/x/net/html; ; false; UnescapeString; ; ; Argument[0]; ReturnValue; taint; manual | +| 3 | Summary: golang.org/x/net/html; ; true; NewTokenizer; ; ; Argument[0]; ReturnValue; taint; manual | +| 4 | Summary: golang.org/x/net/html; ; true; NewTokenizerFragment; ; ; Argument[0]; ReturnValue; taint; manual | +| 5 | Summary: golang.org/x/net/html; ; true; Parse; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 6 | Summary: golang.org/x/net/html; ; true; ParseFragment; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 7 | Summary: golang.org/x/net/html; ; true; ParseFragmentWithOptions; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 8 | Summary: golang.org/x/net/html; ; true; ParseWithOptions; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 9 | Summary: golang.org/x/net/html; ; true; UnescapeString; ; ; Argument[0]; ReturnValue; taint; manual | | 10 | Summary: golang.org/x/net/html; Node; true; AppendChild; ; ; Argument[0]; Argument[receiver]; taint; manual | | 11 | Summary: golang.org/x/net/html; Node; true; InsertBefore; ; ; Argument[0]; Argument[receiver]; taint; manual | | 12 | Summary: golang.org/x/net/html; Tokenizer; true; Buffered; ; ; Argument[receiver]; ReturnValue; taint; manual | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected index c28b1058e7c7..c25bd5f5c38b 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected @@ -5,7 +5,7 @@ edges | test.go:57:29:57:40 | selection of Value | test.go:57:11:57:41 | call to EscapeString | provenance | MaD:2 | models | 1 | Source: net/http; Request; true; Cookie; ; ; ReturnValue[0]; remote; manual | -| 2 | Summary: golang.org/x/net/html; ; false; EscapeString; ; ; Argument[0]; ReturnValue; taint; manual | +| 2 | Summary: golang.org/x/net/html; ; true; EscapeString; ; ; Argument[0]; ReturnValue; taint; manual | nodes | test.go:56:2:56:42 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:57:11:57:41 | call to EscapeString | semmle.label | call to EscapeString | diff --git a/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected b/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected index dc54af70dbba..ee8bb8d7375f 100644 --- a/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected +++ b/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected @@ -24,7 +24,7 @@ edges | tests.go:108:5:108:78 | ... := ...[0] | tests.go:110:9:110:9 | f | provenance | Src:MaD:1 | | tests.go:125:5:125:78 | ... := ...[0] | tests.go:129:3:129:3 | f | provenance | Src:MaD:1 | models -| 1 | Source: os; ; false; OpenFile; ; ; ReturnValue[0]; file; manual | +| 1 | Source: os; ; true; OpenFile; ; ; ReturnValue[0]; file; manual | nodes | tests.go:8:24:8:24 | definition of f | semmle.label | definition of f | | tests.go:9:8:9:8 | f | semmle.label | f | diff --git a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected index 839d35f663ce..ba73f68772fe 100644 --- a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected +++ b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected @@ -10,10 +10,10 @@ edges | TaintedPath.go:21:57:21:68 | tainted_path | TaintedPath.go:21:28:21:69 | call to Join | provenance | FunctionModel Sink:MaD:1 | | TaintedPath.go:68:39:68:56 | ...+... | TaintedPath.go:68:28:68:57 | call to Clean | provenance | MaD:4 Sink:MaD:1 | models -| 1 | Sink: io/ioutil; ; false; ReadFile; ; ; Argument[0]; path-injection; manual | +| 1 | Sink: io/ioutil; ; true; ReadFile; ; ; Argument[0]; path-injection; manual | | 2 | Source: net/http; Request; true; URL; ; ; ; remote; manual | | 3 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | -| 4 | Summary: path; ; false; Clean; ; ; Argument[0]; ReturnValue; taint; manual | +| 4 | Summary: path; ; true; Clean; ; ; Argument[0]; ReturnValue; taint; manual | nodes | TaintedPath.go:14:18:14:22 | selection of URL | semmle.label | selection of URL | | TaintedPath.go:14:18:14:30 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected b/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected index 3276c0771093..e0444bcdab01 100644 --- a/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected +++ b/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected @@ -10,7 +10,7 @@ edges | UnsafeUnzipSymlink.go:126:17:126:31 | selection of Linkname | UnsafeUnzipSymlink.go:111:19:111:26 | definition of linkName | provenance | | | UnsafeUnzipSymlink.go:126:34:126:44 | selection of Name | UnsafeUnzipSymlink.go:111:29:111:36 | definition of fileName | provenance | | models -| 1 | Sink: os; ; false; Symlink; ; ; Argument[0..1]; path-injection; manual | +| 1 | Sink: os; ; true; Symlink; ; ; Argument[0..1]; path-injection; manual | nodes | UnsafeUnzipSymlink.go:31:15:31:29 | selection of Linkname | semmle.label | selection of Linkname | | UnsafeUnzipSymlink.go:31:32:31:42 | selection of Name | semmle.label | selection of Name | diff --git a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected index 7cb981667da2..5641fe1e3ead 100644 --- a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected +++ b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected @@ -17,11 +17,11 @@ edges | tarslip.go:16:23:16:33 | selection of Name | tarslip.go:16:14:16:34 | call to Dir | provenance | MaD:5 Sink:MaD:2 | | tst.go:23:2:43:2 | range statement[1] | tst.go:29:20:29:23 | path | provenance | Sink:MaD:1 | models -| 1 | Sink: io/ioutil; ; false; WriteFile; ; ; Argument[0]; path-injection; manual | -| 2 | Sink: os; ; false; MkdirAll; ; ; Argument[0]; path-injection; manual | -| 3 | Sink: os; ; false; Readlink; ; ; Argument[0]; path-injection; manual | -| 4 | Summary: path/filepath; ; false; Abs; ; ; Argument[0]; ReturnValue[0]; taint; manual | -| 5 | Summary: path; ; false; Dir; ; ; Argument[0]; ReturnValue; taint; manual | +| 1 | Sink: io/ioutil; ; true; WriteFile; ; ; Argument[0]; path-injection; manual | +| 2 | Sink: os; ; true; MkdirAll; ; ; Argument[0]; path-injection; manual | +| 3 | Sink: os; ; true; Readlink; ; ; Argument[0]; path-injection; manual | +| 4 | Summary: path/filepath; ; true; Abs; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 5 | Summary: path; ; true; Dir; ; ; Argument[0]; ReturnValue; taint; manual | nodes | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | semmle.label | definition of candidate | | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | semmle.label | call to Join | diff --git a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index ce713390403b..5ade5857fb86 100644 --- a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -146,11 +146,11 @@ edges | SanitizingDoubleDash.go:143:21:143:28 | arrayLit [array] | SanitizingDoubleDash.go:143:14:143:35 | call to append | provenance | MaD:3 | | SanitizingDoubleDash.go:143:21:143:28 | arrayLit [array] | SanitizingDoubleDash.go:143:14:143:35 | call to append [array] | provenance | MaD:3 | models -| 1 | Sink: os/exec; ; false; Command; ; ; Argument[0]; command-injection; manual | +| 1 | Sink: os/exec; ; true; Command; ; ; Argument[0]; command-injection; manual | | 2 | Source: net/http; Request; true; URL; ; ; ; remote; manual | -| 3 | Summary: ; ; false; append; ; ; Argument[0].ArrayElement; ReturnValue.ArrayElement; value; manual | -| 4 | Summary: ; ; false; append; ; ; Argument[0]; ReturnValue; taint; manual | -| 5 | Summary: ; ; false; append; ; ; Argument[1].ArrayElement; ReturnValue.ArrayElement; value; manual | +| 3 | Summary: ; ; true; append; ; ; Argument[0].ArrayElement; ReturnValue.ArrayElement; value; manual | +| 4 | Summary: ; ; true; append; ; ; Argument[0]; ReturnValue; taint; manual | +| 5 | Summary: ; ; true; append; ; ; Argument[1].ArrayElement; ReturnValue.ArrayElement; value; manual | | 6 | Summary: fmt; ; true; Sprintf; ; ; Argument[1].ArrayElement; ReturnValue; taint; manual | | 7 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | nodes diff --git a/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected b/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected index 12be518a98b9..0ee36cc39e5e 100644 --- a/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected +++ b/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected @@ -5,7 +5,7 @@ edges | StoredCommand.go:13:2:13:5 | rows | StoredCommand.go:13:12:13:19 | &... | provenance | FunctionModel | | StoredCommand.go:13:12:13:19 | &... | StoredCommand.go:14:22:14:28 | cmdName | provenance | Sink:MaD:1 | models -| 1 | Sink: os/exec; ; false; Command; ; ; Argument[0]; command-injection; manual | +| 1 | Sink: os/exec; ; true; Command; ; ; Argument[0]; command-injection; manual | nodes | StoredCommand.go:11:2:11:27 | ... := ...[0] | semmle.label | ... := ...[0] | | StoredCommand.go:13:2:13:5 | rows | semmle.label | rows | diff --git a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected index 0c9d1d6b22a4..ef6843cb5538 100644 --- a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected +++ b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected @@ -81,13 +81,13 @@ models | 10 | Source: net/http; Request; true; URL; ; ; ; remote; manual | | 11 | Source: nhooyr.io/websocket; Conn; true; Read; ; ; ReturnValue[1]; remote; manual | | 12 | Summary: fmt; ; true; Sprintf; ; ; Argument[1].ArrayElement; ReturnValue; taint; manual | -| 13 | Summary: io/ioutil; ; false; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 13 | Summary: io/ioutil; ; true; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | | 14 | Summary: io; Reader; true; Read; ; ; Argument[receiver]; Argument[0]; taint; manual | | 15 | Summary: mime/multipart; Part; true; FileName; ; ; Argument[receiver]; ReturnValue; taint; manual | | 16 | Summary: mime/multipart; Reader; true; NextPart; ; ; Argument[receiver]; ReturnValue[0]; taint; manual | | 17 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | | 18 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | -| 19 | Summary: strings; ; false; Join; ; ; Argument[0..1]; ReturnValue; taint; manual | +| 19 | Summary: strings; ; true; Join; ; ; Argument[0..1]; ReturnValue; taint; manual | nodes | ReflectedXss.go:11:15:11:20 | selection of Form | semmle.label | selection of Form | | ReflectedXss.go:11:15:11:36 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index b4ba00050a59..06cd819269a7 100644 --- a/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -139,9 +139,9 @@ models | 3 | Source: net/http; Request; true; Header; ; ; ; remote; manual | | 4 | Source: net/http; Request; true; Referer; ; ; ReturnValue; remote; manual | | 5 | Source: net/http; Request; true; URL; ; ; ; remote; manual | -| 6 | Summary: encoding/json; ; false; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | +| 6 | Summary: encoding/json; ; true; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | | 7 | Summary: fmt; ; true; Sprintf; ; ; Argument[1].ArrayElement; ReturnValue; taint; manual | -| 8 | Summary: io/ioutil; ; false; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 8 | Summary: io/ioutil; ; true; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | | 9 | Summary: net/http; Header; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | | 10 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | nodes diff --git a/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected b/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected index 5deab249337e..8528aa86a129 100644 --- a/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected +++ b/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected @@ -11,7 +11,7 @@ edges | StringBreakMismatched.go:25:13:25:61 | call to Replace | StringBreakMismatched.go:29:27:29:33 | escaped | provenance | | | StringBreakMismatched.go:25:29:25:47 | type conversion | StringBreakMismatched.go:25:13:25:61 | call to Replace | provenance | MaD:1 | models -| 1 | Summary: strings; ; false; Replace; ; ; Argument[0]; ReturnValue; taint; manual | +| 1 | Summary: strings; ; true; Replace; ; ; Argument[0]; ReturnValue; taint; manual | nodes | StringBreak.go:10:2:10:40 | ... := ...[0] | semmle.label | ... := ...[0] | | StringBreak.go:14:47:14:57 | versionJSON | semmle.label | versionJSON | diff --git a/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected b/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected index 3a9de1ebe600..196eaa367188 100644 --- a/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected +++ b/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected @@ -31,7 +31,7 @@ edges | tst.go:34:2:34:30 | ... = ...[0] | tst.go:35:26:35:33 | jsonData | provenance | | | tst.go:35:26:35:33 | jsonData | tst.go:35:22:35:34 | call to len | provenance | Config | models -| 1 | Source: io/ioutil; ; false; ReadFile; ; ; ReturnValue[0]; file; manual | +| 1 | Source: io/ioutil; ; true; ReadFile; ; ; ReturnValue[0]; file; manual | nodes | AllocationSizeOverflow.go:6:2:6:33 | ... := ...[0] | semmle.label | ... := ...[0] | | AllocationSizeOverflow.go:10:10:10:22 | call to len | semmle.label | call to len | diff --git a/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected b/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected index 539e1070af88..9e7c44ec3b41 100644 --- a/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected +++ b/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected @@ -87,9 +87,9 @@ edges | UnsafeTLS.go:450:6:450:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:449:19:451:5 | slice literal | provenance | | | UnsafeTLS.go:457:6:457:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:456:19:458:5 | slice literal | provenance | | models -| 1 | Summary: ; ; false; append; ; ; Argument[0].ArrayElement; ReturnValue.ArrayElement; value; manual | -| 2 | Summary: ; ; false; append; ; ; Argument[0]; ReturnValue; taint; manual | -| 3 | Summary: ; ; false; append; ; ; Argument[1].ArrayElement; ReturnValue.ArrayElement; value; manual | +| 1 | Summary: ; ; true; append; ; ; Argument[0].ArrayElement; ReturnValue.ArrayElement; value; manual | +| 2 | Summary: ; ; true; append; ; ; Argument[0]; ReturnValue; taint; manual | +| 3 | Summary: ; ; true; append; ; ; Argument[1].ArrayElement; ReturnValue.ArrayElement; value; manual | nodes | UnsafeTLS.go:21:23:21:23 | 0 | semmle.label | 0 | | UnsafeTLS.go:25:23:25:23 | 0 | semmle.label | 0 | diff --git a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected index cf5b484716cd..b4936b77b3dd 100644 --- a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected +++ b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected @@ -23,7 +23,7 @@ edges | sample.go:56:29:56:38 | randNumber | sample.go:56:18:56:39 | index expression | provenance | Config | models | 1 | Summary: fmt; ; true; Sprintf; ; ; Argument[1].ArrayElement; ReturnValue; taint; manual | -| 2 | Summary: io; ; false; ReadFull; ; ; Argument[0]; Argument[1]; taint; manual | +| 2 | Summary: io; ; true; ReadFull; ; ; Argument[0]; Argument[1]; taint; manual | nodes | InsecureRandomness.go:12:18:12:40 | call to Intn | semmle.label | call to Intn | | sample.go:15:10:15:64 | call to Sum256 | semmle.label | call to Sum256 | diff --git a/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected b/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected index 1ac1033433ef..10b4b3f35053 100644 --- a/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected +++ b/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected @@ -30,7 +30,7 @@ edges | main.go:87:9:87:14 | selection of Path | main.go:91:25:91:39 | call to getTarget2 | provenance | Sink:MaD:1 | models | 1 | Sink: net/http; ; true; Redirect; ; ; Argument[2]; url-redirection[0]; manual | -| 2 | Summary: path; ; false; Clean; ; ; Argument[0]; ReturnValue; taint; manual | +| 2 | Summary: path; ; true; Clean; ; ; Argument[0]; ReturnValue; taint; manual | nodes | BadRedirectCheck.go:3:18:3:22 | argument corresponding to redir | semmle.label | argument corresponding to redir | | BadRedirectCheck.go:3:18:3:22 | definition of redir | semmle.label | definition of redir | diff --git a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected index ac5985f110d9..864b55a25dbc 100644 --- a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected @@ -33,8 +33,8 @@ edges models | 1 | Source: net/http; Request; true; Header; ; ; ; remote; manual | | 2 | Source: net/http; Request; true; Referer; ; ; ReturnValue; remote; manual | -| 3 | Summary: github.com/sendgrid/sendgrid-go/helpers/mail; ; false; NewContent; ; ; Argument[1]; ReturnValue; taint; manual | -| 4 | Summary: io; ; false; WriteString; ; ; Argument[1]; Argument[0]; taint; manual | +| 3 | Summary: github.com/sendgrid/sendgrid-go/helpers/mail; ; true; NewContent; ; ; Argument[1]; ReturnValue; taint; manual | +| 4 | Summary: io; ; true; WriteString; ; ; Argument[1]; Argument[0]; taint; manual | | 5 | Summary: net/http; Header; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | nodes | EmailBad.go:9:10:9:17 | selection of Header | semmle.label | selection of Header | diff --git a/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected b/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected index 3914ab37db4b..d5380ed1e6e2 100644 --- a/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected @@ -138,7 +138,7 @@ models | 35 | Sink: group:xmlpath; ; true; MustCompile; ; ; Argument[0]; xpath-injection; manual | | 36 | Source: net/http; Request; true; Form; ; ; ; remote; manual | | 37 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | -| 38 | Summary: strings; ; false; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | +| 38 | Summary: strings; ; true; NewReader; ; ; Argument[0]; ReturnValue; taint; manual | nodes | XPathInjection.go:13:14:13:19 | selection of Form | semmle.label | selection of Form | | XPathInjection.go:13:14:13:35 | call to Get | semmle.label | call to Get | From 44e865114a5ed6c69b102393785aa56cde80fbf3 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 12 Nov 2024 11:37:07 +0000 Subject: [PATCH 3/3] Add change note --- .../change-notes/2024-11-12-models-as-data-subtypes-true.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 go/ql/lib/change-notes/2024-11-12-models-as-data-subtypes-true.md diff --git a/go/ql/lib/change-notes/2024-11-12-models-as-data-subtypes-true.md b/go/ql/lib/change-notes/2024-11-12-models-as-data-subtypes-true.md new file mode 100644 index 000000000000..b1c78815ea37 --- /dev/null +++ b/go/ql/lib/change-notes/2024-11-12-models-as-data-subtypes-true.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `subtypes` column has been set to true in all models-as-data models except some tests. This means that existing models will apply in some cases where they didn't before, which may lead to more alerts.