Merge pull request #16558 from owen-mc/go/sync-external-flow

Go: sync ExternalFlow.qll
This commit is contained in:
Owen Mansel-Chan
2024-06-05 11:31:34 +01:00
committed by GitHub
177 changed files with 932 additions and 687 deletions

View File

@@ -0,0 +1,5 @@
---
category: feature
---
* When writing models-as-data models, the receiver is now referred to as `Argument[receiver]` rather than `Argument[-1]`.
* Neutral models are now supported. They have no effect except that a manual neutral summary model will stop a generated summary model from having any effect.

View File

@@ -5,6 +5,6 @@ extensions:
data:
- ["archive/tar", "", False, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["archive/tar", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["archive/tar", "Header", True, "FileInfo", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["archive/tar", "Reader", True, "Next", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["archive/tar", "Writer", True, "WriteHeader", "", "", "Argument[0]", "Argument[-1]", "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"]

View File

@@ -6,6 +6,6 @@ extensions:
- ["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", "File", True, "Open", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["archive/zip", "File", True, "OpenRaw", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["archive/zip", "Writer", True, "Copy", "", "", "Argument[0]", "Argument[-1]", "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"]

View File

@@ -11,12 +11,12 @@ extensions:
- ["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", "Reader", True, "Peek", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["bufio", "Reader", True, "ReadBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["bufio", "Reader", True, "ReadLine", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["bufio", "Reader", True, "ReadSlice", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["bufio", "Reader", True, "ReadString", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["bufio", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["bufio", "Scanner", True, "Bytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["bufio", "Scanner", True, "Text", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["bufio", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[0]", "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"]
- ["bufio", "Reader", True, "ReadSlice", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["bufio", "Reader", True, "ReadString", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["bufio", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["bufio", "Scanner", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["bufio", "Scanner", True, "Text", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["bufio", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]

View File

@@ -41,8 +41,8 @@ extensions:
- ["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", "Buffer", True, "Bytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["bytes", "Buffer", True, "Next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["bytes", "Buffer", True, "ReadBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["bytes", "Buffer", True, "ReadString", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["bytes", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "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"]
- ["bytes", "Buffer", True, "ReadString", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["bytes", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -5,5 +5,5 @@ extensions:
data:
- ["compress/flate", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["compress/flate", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["compress/flate", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["compress/flate", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["compress/flate", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["compress/flate", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]

View File

@@ -4,5 +4,5 @@ extensions:
extensible: summaryModel
data:
- ["compress/gzip", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["compress/gzip", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["compress/gzip", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[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"]

View File

@@ -5,5 +5,5 @@ extensions:
data:
- ["compress/zlib", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["compress/zlib", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["compress/zlib", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["compress/zlib", "Writer", True, "Reset", "", "", "Argument[-1]", "Argument[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"]

View File

@@ -6,5 +6,5 @@ extensions:
- ["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", "Interface", True, "Pop", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/heap", "Interface", True, "Push", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/heap", "Interface", True, "Pop", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/heap", "Interface", True, "Push", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -3,23 +3,23 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["container/list", "Element", True, "Next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/list", "Element", True, "Prev", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "Back", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "Front", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "Init", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "InsertAfter", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "Element", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/list", "Element", True, "Prev", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "Back", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "Front", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "Init", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "InsertAfter", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "InsertAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "InsertBefore", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "InsertBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "InsertBefore", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "MoveAfter", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "MoveBefore", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "MoveToBack", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "MoveToFront", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "PushBack", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "MoveAfter", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "MoveBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "MoveToBack", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "MoveToFront", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "PushBack", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "PushBack", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "PushBackList", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "PushFront", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "PushBackList", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "PushFront", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "PushFront", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["container/list", "List", True, "PushFrontList", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["container/list", "List", True, "PushFrontList", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["container/list", "List", True, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

View File

@@ -4,7 +4,7 @@ extensions:
extensible: summaryModel
data:
- ["container/ring", "Ring", True, "Link", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Move", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Prev", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Unlink", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Move", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Prev", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["container/ring", "Ring", True, "Unlink", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -7,4 +7,4 @@ extensions:
- ["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", "Context", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -6,4 +6,4 @@ extensions:
- ["database/sql/driver", "Conn", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["database/sql/driver", "ConnPrepareContext", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]
- ["database/sql/driver", "ValueConverter", True, "ConvertValue", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["database/sql/driver", "Valuer", True, "Value", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["database/sql/driver", "Valuer", True, "Value", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -7,6 +7,6 @@ extensions:
- ["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"]
- ["database/sql", "Scanner", True, "Scan", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["database/sql", "Scanner", True, "Scan", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["database/sql", "Tx", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["database/sql", "Tx", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -13,3 +13,7 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data: []
- addsTo:
pack: codeql/go-all
extensible: neutralModel
data: []

View File

@@ -4,7 +4,7 @@ extensions:
extensible: summaryModel
data:
- ["encoding/csv", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["encoding/csv", "Reader", True, "Read", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/csv", "Reader", True, "ReadAll", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/csv", "Writer", True, "Write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/csv", "Writer", True, "WriteAll", "", "", "Argument[0]", "Argument[-1]", "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"]
- ["encoding/csv", "Writer", True, "WriteAll", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -4,9 +4,9 @@ extensions:
extensible: summaryModel
data:
- ["encoding/gob", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["encoding/gob", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["encoding/gob", "Decoder", True, "DecodeValue", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["encoding/gob", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/gob", "Encoder", True, "EncodeValue", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/gob", "GobDecoder", True, "GobDecode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/gob", "GobEncoder", True, "GobEncode", "", "", "Argument[-1]", "ReturnValue[0]", "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"]
- ["encoding/gob", "Encoder", True, "EncodeValue", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding/gob", "GobDecoder", True, "GobDecode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding/gob", "GobEncoder", True, "GobEncode", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -10,10 +10,10 @@ extensions:
- ["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", "Decoder", True, "Buffered", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["encoding/json", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["encoding/json", "Decoder", True, "Token", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/json", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/json", "Encoder", True, "SetIndent", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["encoding/json", "Marshaler", True, "MarshalJSON", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/json", "Unmarshaler", True, "UnmarshalJSON", "", "", "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"]
- ["encoding/json", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding/json", "Encoder", True, "SetIndent", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["encoding/json", "Marshaler", True, "MarshalJSON", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/json", "Unmarshaler", True, "UnmarshalJSON", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -3,7 +3,7 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["encoding", "BinaryMarshaler", True, "MarshalBinary", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "BinaryUnmarshaler", True, "UnmarshalBinary", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding", "TextMarshaler", True, "MarshalText", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "TextUnmarshaler", True, "UnmarshalText", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding", "BinaryMarshaler", True, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "BinaryUnmarshaler", True, "UnmarshalBinary", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding", "TextMarshaler", True, "MarshalText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "TextUnmarshaler", True, "UnmarshalText", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -11,18 +11,18 @@ extensions:
- ["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", "CharData", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "Comment", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["encoding/xml", "Decoder", True, "DecodeElement", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["encoding/xml", "Decoder", True, "RawToken", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/xml", "Directive", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "EncodeElement", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "EncodeToken", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "Indent", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["encoding/xml", "Marshaler", True, "MarshalXML", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["encoding/xml", "ProcInst", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "StartElement", True, "Copy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "TokenReader", True, "Token", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/xml", "Unmarshaler", True, "UnmarshalXML", "", "", "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"]
- ["encoding/xml", "Decoder", True, "DecodeElement", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["encoding/xml", "Decoder", True, "RawToken", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/xml", "Directive", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "EncodeElement", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "EncodeToken", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding/xml", "Encoder", True, "Indent", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["encoding/xml", "Marshaler", True, "MarshalXML", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["encoding/xml", "ProcInst", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "StartElement", True, "Copy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["encoding/xml", "TokenReader", True, "Token", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding/xml", "Unmarshaler", True, "UnmarshalXML", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -3,9 +3,9 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["expvar", "Func", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["expvar", "Map", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["expvar", "Map", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["expvar", "String", True, "Set", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["expvar", "String", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["expvar", "Var", True, "String", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["expvar", "Func", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["expvar", "Map", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["expvar", "Map", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["expvar", "String", True, "Set", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["expvar", "String", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["expvar", "Var", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -3,11 +3,11 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["fmt", "GoStringer", True, "GoString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["fmt", "ScanState", True, "Read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["fmt", "ScanState", True, "Token", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["fmt", "State", True, "Write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["fmt", "Stringer", True, "String", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["fmt", "GoStringer", True, "GoString", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["fmt", "ScanState", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["fmt", "ScanState", True, "Token", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["fmt", "State", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["fmt", "Stringer", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["fmt", "", True, "Append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["fmt", "", True, "Append", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"]
- ["fmt", "", True, "Appendf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]

View File

@@ -13,9 +13,9 @@ extensions:
- ["github.com/astaxie/beego/utils", "", False, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "", False, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "", False, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Items", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Items", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/astaxie/beego/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "", False, "SliceChunk", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "", False, "SliceDiff", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "", False, "SliceFilter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
@@ -26,6 +26,6 @@ extensions:
- ["github.com/beego/beego/core/utils", "", False, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "", False, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "", False, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Items", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Items", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/beego/beego/core/utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"]

View File

@@ -3,5 +3,5 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["github.com/elazarl/goproxy", "CertStorage", True, "Fetch", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/elazarl/goproxy", "CertStorage", True, "Fetch", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/elazarl/goproxy", "CertStorage", True, "Fetch", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -7,11 +7,11 @@ extensions:
- ["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", "Patch", True, "Apply", "", "", "Argument[-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[-1]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndentWithOptions", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndentWithOptions", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndentWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyWithOptions", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyWithOptions", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/evanphx/json-patch", "Patch", True, "ApplyWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -3,5 +3,5 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["github.com/gin-gonic/gin", "Params", True, "ByName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/gin-gonic/gin", "Params", True, "Get", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/gin-gonic/gin", "Params", True, "ByName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/gin-gonic/gin", "Params", True, "Get", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -3,7 +3,7 @@ extensions:
pack: codeql/go-all
extensible: sinkModel
data:
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[-1]", "jwt", "manual"]
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[receiver]", "jwt", "manual"]
- addsTo:
pack: codeql/go-all
extensible: summaryModel
@@ -11,4 +11,4 @@ extensions:
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "", True, "ParseEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "", True, "ParseSigned", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "NestedJSONWebToken", True, "ParseSignedAndEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["github.com/go-jose/go-jose/$ANYVERSION/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -3,5 +3,5 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["github.com/labstack/echo", "Context", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/labstack/echo", "Context", True, "Set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"]
- ["github.com/labstack/echo", "Context", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/labstack/echo", "Context", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"]

View File

@@ -3,23 +3,23 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["github.com/revel/revel", "Params", True, "Bind", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["github.com/revel/revel", "Params", True, "BindJSON", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "GetAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/revel/revel", "ServerCookie", True, "GetValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "Params", True, "Bind", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["github.com/robfig/revel", "Params", True, "BindJSON", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "GetAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/robfig/revel", "ServerCookie", True, "GetValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "Params", True, "Bind", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["github.com/revel/revel", "Params", True, "BindJSON", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "GetAll", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["github.com/revel/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["github.com/revel/revel", "ServerCookie", True, "GetValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/revel/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "Params", True, "Bind", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["github.com/robfig/revel", "Params", True, "BindJSON", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "GetAll", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["github.com/robfig/revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["github.com/robfig/revel", "ServerCookie", True, "GetValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/robfig/revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -3,8 +3,8 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["github.com/valyala/fasthttp", "URI", False, "SetHost", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/valyala/fasthttp", "URI", False, "SetHostBytes", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/valyala/fasthttp", "URI", False, "Update", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/valyala/fasthttp", "URI", False, "UpdateBytes", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/valyala/fasthttp", "URI", False, "Parse", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["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"]

View File

@@ -7,4 +7,4 @@ extensions:
- ["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", "Context", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -12,10 +12,10 @@ extensions:
- ["golang.org/x/net/$ANYVERSION/html", "", False, "ParseWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "", False, "Render", "", "", "Argument[1]", "Argument[0]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "", False, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "AppendChild", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "InsertBefore", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Buffered", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Raw", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "TagAttr", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Text", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Token", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "AppendChild", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Node", True, "InsertBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Buffered", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "TagAttr", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Text", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["golang.org/x/net/$ANYVERSION/html", "Tokenizer", True, "Token", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -3,4 +3,4 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["google.golang.org/protobuf/$ANYVERSION/internal/encoding/text", "Token", True, "String", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["google.golang.org/protobuf/$ANYVERSION/internal/encoding/text", "Token", True, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -3,5 +3,5 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "GetUnknown", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["google.golang.org/protobuf/$ANYVERSION/internal/impl", "aberrantMessage", True, "GetUnknown", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -3,4 +3,4 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["google.golang.org/protobuf/$ANYVERSION/reflect/protoreflect", "ProtoMessage", True, "ProtoReflect", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["google.golang.org/protobuf/$ANYVERSION/reflect/protoreflect", "ProtoMessage", True, "ProtoReflect", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -5,55 +5,55 @@ extensions:
data:
- ["gopkg.in/couchbase/gocb", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["gopkg.in/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbase/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/couchbaselabs/gocb", "N1qlQuery", True, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -19,4 +19,4 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["gopkg.in/macaron", "RequestBody", True, "String", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["gopkg.in/macaron", "RequestBody", True, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -3,7 +3,7 @@ extensions:
pack: codeql/go-all
extensible: sinkModel
data:
- ["gopkg.in/square/go-jose.v2/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[-1]", "jwt", "manual"]
- ["gopkg.in/square/go-jose.v2/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[receiver]", "jwt", "manual"]
- addsTo:
pack: codeql/go-all
extensible: summaryModel
@@ -11,4 +11,4 @@ extensions:
- ["gopkg.in/square/go-jose.v2/jwt", "", True, "ParseEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["gopkg.in/square/go-jose.v2/jwt", "", True, "ParseSigned", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["gopkg.in/square/go-jose.v2/jwt", "NestedJSONWebToken", True, "ParseSignedAndEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["gopkg.in/square/go-jose.v2/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["gopkg.in/square/go-jose.v2/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -7,8 +7,8 @@ extensions:
- ["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", "Decoder", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["gopkg.in/yaml", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["gopkg.in/yaml", "Node", True, "Decode", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["gopkg.in/yaml", "Node", True, "Encode", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["gopkg.in/yaml", "Node", True, "SetString", "", "", "Argument[0]", "Argument[-1]", "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"]
- ["gopkg.in/yaml", "Node", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["gopkg.in/yaml", "Node", True, "SetString", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -8,10 +8,10 @@ extensions:
- ["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", "DirEntry", True, "Info", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "DirEntry", True, "Name", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["io/fs", "FS", True, "Open", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "GlobFS", True, "Glob", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "ReadDirFS", True, "ReadDir", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "ReadFileFS", True, "ReadFile", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "SubFS", True, "Sub", "", "", "Argument[-1]", "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", "FS", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "GlobFS", True, "Glob", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "ReadDirFS", True, "ReadDir", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "ReadFileFS", True, "ReadFile", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["io/fs", "SubFS", True, "Sub", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -15,10 +15,10 @@ extensions:
- ["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", "Reader", True, "Read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["io", "ReaderAt", True, "ReadAt", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["io", "ReaderFrom", True, "ReadFrom", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["io", "StringWriter", True, "WriteString", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["io", "Writer", True, "Write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["io", "WriterAt", True, "WriteAt", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["io", "WriterTo", True, "WriteTo", "", "", "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"]
- ["io", "StringWriter", True, "WriteString", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["io", "Writer", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["io", "WriterAt", True, "WriteAt", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["io", "WriterTo", True, "WriteTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]

View File

@@ -3,13 +3,13 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["k8s.io/api/core", "Secret", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "DeepCopyObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "DeepCopyObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/api/core", "Secret", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/api/core", "SecretList", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]

View File

@@ -23,30 +23,30 @@ extensions:
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "", False, "NewEncodableList", "", "", "Argument[1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "", False, "SetField", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "", False, "UseOrCreateObject", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "CacheEncode", "", "", "Argument[-1]", "Argument[2]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "GetObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "CacheEncode", "", "", "Argument[receiver]", "Argument[2]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "CacheableObject", True, "GetObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Decoder", True, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Decoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Framer", True, "NewFrameReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Framer", True, "NewFrameWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Object", True, "DeepCopyObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Object", True, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ObjectConvertor", True, "Convert", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ObjectVersioner", True, "ConvertToVersion", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ParameterCodec", True, "DecodeParameters", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ParameterCodec", True, "EncodeParameters", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufMarshaller", True, "MarshalTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufReverseMarshaller", True, "MarshalToSizedBuffer", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopy", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopyInto", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Marshal", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "NestedMarshalTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Unmarshal", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "SetUnstructuredContent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "UnstructuredContent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufMarshaller", True, "MarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "ProtobufReverseMarshaller", True, "MarshalToSizedBuffer", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "RawExtension", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "NestedMarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unknown", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "SetUnstructuredContent", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "Unstructured", True, "UnstructuredContent", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "WithoutVersionDecoder", True, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
- ["k8s.io/apimachinery/$ANYVERSION/pkg/runtime", "WithoutVersionDecoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -3,6 +3,6 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["log", "Logger", True, "SetOutput", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["log", "Logger", True, "SetPrefix", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["log", "Logger", True, "Writer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["log", "Logger", True, "SetOutput", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["log", "Logger", True, "SetPrefix", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["log", "Logger", True, "Writer", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -3,4 +3,4 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["math/big", "Int", False, "Int64", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["math/big", "Int", False, "Int64", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -4,10 +4,10 @@ extensions:
extensible: summaryModel
data:
- ["mime/multipart", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["mime/multipart", "FileHeader", True, "Open", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["mime/multipart", "Part", True, "FileName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["mime/multipart", "Part", True, "FormName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["mime/multipart", "Reader", True, "NextPart", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["mime/multipart", "Reader", True, "NextRawPart", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["mime/multipart", "Reader", True, "ReadForm", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["mime/multipart", "Writer", True, "WriteField", "", "", "Argument[0..1]", "Argument[-1]", "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"]
- ["mime/multipart", "Reader", True, "NextPart", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["mime/multipart", "Reader", True, "NextRawPart", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["mime/multipart", "Reader", True, "ReadForm", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["mime/multipart", "Writer", True, "WriteField", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]

View File

@@ -9,7 +9,7 @@ extensions:
- ["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", "BufferPool", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/http/httputil", "BufferPool", True, "Put", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["net/http/httputil", "ClientConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]
- ["net/http/httputil", "ServerConn", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "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"]
- ["net/http/httputil", "ServerConn", True, "Hijack", "", "", "Argument[receiver]", "ReturnValue[0..1]", "taint", "manual"]

View File

@@ -11,20 +11,20 @@ extensions:
- ["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", "Header", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["net/http", "Header", True, "Clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/http", "Header", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/http", "Header", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["net/http", "Header", True, "Values", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/http", "Header", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net/http", "Header", True, "WriteSubset", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net/http", "Hijacker", True, "Hijack", "", "", "Argument[-1]", "ReturnValue[0..1]", "taint", "manual"]
- ["net/http", "Request", True, "AddCookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["net/http", "Request", True, "Clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/http", "Request", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net/http", "Request", True, "WriteProxy", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net/http", "Response", True, "Write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net/http", "Transport", True, "Clone", "", "", "Argument[-1]", "ReturnValue", "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"]
- ["net/http", "Header", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["net/http", "Header", True, "Values", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/http", "Header", True, "Write", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net/http", "Header", True, "WriteSubset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net/http", "Hijacker", True, "Hijack", "", "", "Argument[receiver]", "ReturnValue[0..1]", "taint", "manual"]
- ["net/http", "Request", True, "AddCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["net/http", "Request", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/http", "Request", True, "Write", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net/http", "Request", True, "WriteProxy", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net/http", "Response", True, "Write", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net/http", "Transport", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- addsTo:
pack: codeql/go-all
extensible: sourceModel

View File

@@ -8,4 +8,4 @@ extensions:
- ["net/mail", "", False, "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[-1]", "ReturnValue", "taint", "manual"]
- ["net/mail", "Header", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -7,19 +7,19 @@ extensions:
- ["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", "IPConn", True, "ReadFromIP", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net", "IPConn", True, "ReadMsgIP", "", "", "Argument[-1]", "Argument[0..1]", "taint", "manual"]
- ["net", "IPConn", True, "WriteMsgIP", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["net", "IPConn", True, "WriteToIP", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["net", "PacketConn", True, "ReadFrom", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net", "PacketConn", True, "WriteTo", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["net", "TCPListener", True, "File", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net", "UDPConn", True, "ReadFromUDP", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net", "UDPConn", True, "ReadMsgUDP", "", "", "Argument[-1]", "Argument[0..1]", "taint", "manual"]
- ["net", "UDPConn", True, "WriteMsgUDP", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["net", "UDPConn", True, "WriteToUDP", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["net", "UnixConn", True, "ReadFromUnix", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["net", "UnixConn", True, "ReadMsgUnix", "", "", "Argument[-1]", "Argument[0..1]", "taint", "manual"]
- ["net", "UnixConn", True, "WriteMsgUnix", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["net", "UnixConn", True, "WriteToUnix", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["net", "UnixListener", True, "File", "", "", "Argument[-1]", "ReturnValue[0]", "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"]
- ["net", "IPConn", True, "WriteToIP", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["net", "PacketConn", True, "ReadFrom", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net", "PacketConn", True, "WriteTo", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["net", "TCPListener", True, "File", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net", "UDPConn", True, "ReadFromUDP", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net", "UDPConn", True, "ReadMsgUDP", "", "", "Argument[receiver]", "Argument[0..1]", "taint", "manual"]
- ["net", "UDPConn", True, "WriteMsgUDP", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["net", "UDPConn", True, "WriteToUDP", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["net", "UnixConn", True, "ReadFromUnix", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["net", "UnixConn", True, "ReadMsgUnix", "", "", "Argument[receiver]", "Argument[0..1]", "taint", "manual"]
- ["net", "UnixConn", True, "WriteMsgUnix", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["net", "UnixConn", True, "WriteToUnix", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["net", "UnixListener", True, "File", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -8,17 +8,17 @@ extensions:
- ["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", "MIMEHeader", True, "Add", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["net/textproto", "MIMEHeader", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/textproto", "MIMEHeader", True, "Set", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["net/textproto", "MIMEHeader", True, "Values", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/textproto", "Reader", True, "DotReader", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadCodeLine", "", "", "Argument[-1]", "ReturnValue[1]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadContinuedLine", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadContinuedLineBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadDotBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadDotLines", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadLine", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadLineBytes", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadMIMEHeader", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadResponse", "", "", "Argument[-1]", "ReturnValue[1]", "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"]
- ["net/textproto", "MIMEHeader", True, "Values", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/textproto", "Reader", True, "DotReader", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadCodeLine", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadContinuedLine", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadContinuedLineBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadDotBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadDotLines", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadLine", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadLineBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadMIMEHeader", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/textproto", "Reader", True, "ReadResponse", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"]

View File

@@ -12,17 +12,17 @@ extensions:
- ["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", "URL", True, "EscapedPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "Hostname", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "MarshalBinary", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/url", "URL", True, "Parse", "", "", "Argument[-1]", "ReturnValue[0]", "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"]
- ["net/url", "URL", True, "Parse", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/url", "URL", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["net/url", "URL", True, "Port", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "Query", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "RequestURI", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "ResolveReference", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "Port", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "Query", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "RequestURI", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "ResolveReference", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/url", "URL", True, "ResolveReference", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["net/url", "Userinfo", True, "Password", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["net/url", "Userinfo", True, "Username", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "Values", True, "Encode", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "Values", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["net/url", "Userinfo", True, "Password", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["net/url", "Userinfo", True, "Username", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/url", "Values", True, "Encode", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["net/url", "Values", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -6,4 +6,4 @@ extensions:
- ["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", "File", True, "Fd", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["os", "File", True, "Fd", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -7,36 +7,36 @@ extensions:
- ["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", "MapIter", True, "Key", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "MapIter", True, "Value", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "StructTag", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "StructTag", True, "Lookup", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["reflect", "Value", True, "Addr", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Bytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Convert", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Elem", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Field", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "FieldByIndex", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "FieldByName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "FieldByNameFunc", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Index", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Interface", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "InterfaceData", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MapIndex", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MapKeys", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MapRange", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Method", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MethodByName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Pointer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Recv", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["reflect", "Value", True, "Send", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["reflect", "Value", True, "Set", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["reflect", "Value", True, "SetBytes", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["reflect", "Value", True, "SetMapIndex", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["reflect", "Value", True, "SetPointer", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["reflect", "Value", True, "SetString", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["reflect", "Value", True, "Slice", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Slice3", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "TryRecv", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["reflect", "Value", True, "TrySend", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["reflect", "Value", True, "UnsafeAddr", "", "", "Argument[-1]", "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"]
- ["reflect", "StructTag", True, "Lookup", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["reflect", "Value", True, "Addr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Convert", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Elem", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Field", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "FieldByIndex", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "FieldByName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "FieldByNameFunc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Index", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Interface", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "InterfaceData", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MapIndex", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MapKeys", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MapRange", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Method", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "MethodByName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Pointer", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Recv", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["reflect", "Value", True, "Send", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["reflect", "Value", True, "Set", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["reflect", "Value", True, "SetBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["reflect", "Value", True, "SetMapIndex", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["reflect", "Value", True, "SetPointer", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["reflect", "Value", True, "SetString", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["reflect", "Value", True, "Slice", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "Slice3", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["reflect", "Value", True, "TryRecv", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["reflect", "Value", True, "TrySend", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["reflect", "Value", True, "UnsafeAddr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -34,6 +34,6 @@ extensions:
- ["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", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[-1]", "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"]

View File

@@ -15,15 +15,15 @@ extensions:
- ["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", "Pointer", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Pointer", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["sync/atomic", "Value", True, "Load", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Value", True, "Store", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[0]", "Argument[-1]", "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"]
- ["sync/atomic", "Pointer", True, "Swap", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Load", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Store", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Uintptr", True, "Swap", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["sync/atomic", "Value", True, "Load", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Value", True, "Store", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["sync/atomic", "Value", True, "Swap", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -3,13 +3,13 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["sync", "Map", True, "CompareAndSwap", "", "", "Argument[2]", "Argument[-1]", "taint", "manual"]
- ["sync", "Map", True, "Load", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["sync", "Map", True, "CompareAndSwap", "", "", "Argument[2]", "Argument[receiver]", "taint", "manual"]
- ["sync", "Map", True, "Load", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["sync", "Map", True, "LoadOrStore", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"]
- ["sync", "Map", True, "Store", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["sync", "Map", True, "Swap", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["sync", "Map", True, "Swap", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"]
- ["sync", "Pool", True, "Get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["sync", "Pool", True, "Put", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["sync", "Map", True, "Store", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["sync", "Map", True, "Swap", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["sync", "Map", True, "Swap", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"]
- ["sync", "Pool", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["sync", "Pool", True, "Put", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -8,6 +8,6 @@ extensions:
- ["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", "Conn", True, "SyscallConn", "", "", "Argument[-1]", "ReturnValue[0]", "taint", "manual"]
- ["syscall", "RawConn", True, "Read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["syscall", "RawConn", True, "Write", "", "", "Argument[0]", "Argument[-1]", "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"]

View File

@@ -3,6 +3,6 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["text/scanner", "Scanner", True, "Init", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["text/scanner", "Scanner", True, "Init", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["text/scanner", "Scanner", True, "Init", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["text/scanner", "Scanner", True, "TokenText", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["text/scanner", "Scanner", True, "TokenText", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]

View File

@@ -3,4 +3,4 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["text/tabwriter", "Writer", True, "Init", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["text/tabwriter", "Writer", True, "Init", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]

View File

@@ -1,7 +1,7 @@
/**
* INTERNAL use only. This is an experimental API subject to change without notice.
*
* Provides classes and predicates for dealing with MaD flow models specified
* Provides classes and predicates for dealing with flow models specified
* in data extensions and CSV format.
*
* The CSV specification has the following columns:
@@ -11,6 +11,9 @@
* `package; type; subtypes; name; signature; ext; input; kind; provenance`
* - Summaries:
* `package; type; subtypes; name; signature; ext; input; output; kind; provenance`
* - Neutrals:
* `package; type; name; signature; kind; provenance`
* A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink).
*
* The interpretation of a row is similar to API-graphs with a left-to-right
* reading.
@@ -27,7 +30,7 @@
* "Argument[n]", or "Argument[n1..n2]":
* - "": Selects a write to the selected element in case this is a field.
* - "Argument[n]": Selects an argument in a call to the selected element.
* The arguments are zero-indexed, and `-1` specifies the qualifier.
* The arguments are zero-indexed, and `receiver` specifies the receiver.
* - "Argument[n1..n2]": Similar to "Argument[n]" but selects any argument
* in the given range. The range is inclusive at both ends.
*
@@ -37,12 +40,12 @@
* - "": Selects a read of a selected field.
* - "Argument[n]": Selects the post-update value of an argument in a call to the
* selected element. That is, the value of the argument after the call returns.
* The arguments are zero-indexed, and `-1` specifies the qualifier.
* The arguments are zero-indexed, and `receiver` specifies the receiver.
* - "Argument[n1..n2]": Similar to "Argument[n]" but select any argument in
* the given range. The range is inclusive at both ends.
* - "Parameter": Selects the value of a parameter of the selected element.
* - "Parameter[n]": Similar to "Parameter" but restricted to a specific
* numbered parameter (zero-indexed, and `-1` specifies the value of `this`).
* numbered parameter (zero-indexed, and `receiver` specifies the receiver).
* - "Parameter[n1..n2]": Similar to "Parameter[n]" but selects any parameter
* in the given range. The range is inclusive at both ends.
* - "ReturnValue": Selects the first value being returned by the selected
@@ -73,46 +76,33 @@
private import go
import internal.ExternalFlowExtensions
private import FlowSummary as FlowSummary
private import internal.DataFlowPrivate
private import internal.FlowSummaryImpl
private import internal.FlowSummaryImpl::Public
private import internal.FlowSummaryImpl::Private
private import internal.FlowSummaryImpl::Private::External
private import internal.FlowSummaryImpl::Public
private import codeql.mad.ModelValidation as SharedModelVal
/** Holds if `package` have MaD framework coverage. */
private predicate packageHasMaDCoverage(string package) {
private predicate relevantPackage(string package) {
sourceModel(package, _, _, _, _, _, _, _, _, _) or
sinkModel(package, _, _, _, _, _, _, _, _, _) or
summaryModel(package, _, _, _, _, _, _, _, _, _, _)
}
/**
* Holds if `package` and `subpkg` have MaD framework coverage and `subpkg`
* is a subpackage of `package`.
*/
private predicate packageHasASubpackage(string package, string subpkg) {
packageHasMaDCoverage(package) and
packageHasMaDCoverage(subpkg) and
subpkg.prefix(subpkg.indexOf(".")) = package
private predicate packageLink(string shortpkg, string longpkg) {
relevantPackage(shortpkg) and
relevantPackage(longpkg) and
longpkg.prefix(longpkg.indexOf(".")) = shortpkg
}
/**
* Holds if `package` has MaD framework coverage and it is not a subpackage of
* any other package with MaD framework coverage.
*/
private predicate canonicalPackage(string package) {
packageHasMaDCoverage(package) and not packageHasASubpackage(_, package)
relevantPackage(package) and not packageLink(_, package)
}
/**
* Holds if `package` and `subpkg` have MaD framework coverage, `subpkg` is a
* subpackage of `package` (or they are the same), and `package` is not a
* subpackage of any other package with MaD framework coverage.
*/
private predicate canonicalPackageHasASubpackage(string package, string subpkg) {
private predicate canonicalPkgLink(string package, string subpkg) {
canonicalPackage(package) and
(subpkg = package or packageHasASubpackage(package, subpkg))
(subpkg = package or packageLink(package, subpkg))
}
/**
@@ -121,13 +111,13 @@ private predicate canonicalPackageHasASubpackage(string package, string subpkg)
* which have MaD framework coverage (including `package` itself).
*/
predicate modelCoverage(string package, int pkgs, string kind, string part, int n) {
pkgs = strictcount(string subpkg | canonicalPackageHasASubpackage(package, subpkg)) and
pkgs = strictcount(string subpkg | canonicalPkgLink(package, subpkg)) and
(
part = "source" and
n =
strictcount(string subpkg, string type, boolean subtypes, string name, string signature,
string ext, string output, string provenance |
canonicalPackageHasASubpackage(package, subpkg) and
canonicalPkgLink(package, subpkg) and
sourceModel(subpkg, type, subtypes, name, signature, ext, output, kind, provenance, _)
)
or
@@ -135,7 +125,7 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int
n =
strictcount(string subpkg, string type, boolean subtypes, string name, string signature,
string ext, string input, string provenance |
canonicalPackageHasASubpackage(package, subpkg) and
canonicalPkgLink(package, subpkg) and
sinkModel(subpkg, type, subtypes, name, signature, ext, input, kind, provenance, _)
)
or
@@ -143,7 +133,7 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int
n =
strictcount(string subpkg, string type, boolean subtypes, string name, string signature,
string ext, string input, string output, string provenance |
canonicalPackageHasASubpackage(package, subpkg) and
canonicalPkgLink(package, subpkg) and
summaryModel(subpkg, type, subtypes, name, signature, ext, input, output, kind, provenance,
_)
)
@@ -152,8 +142,23 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int
/** Provides a query predicate to check the MaD models for validation errors. */
module ModelValidation {
private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax
private predicate getRelevantAccessPath(string path) {
summaryModel(_, _, _, _, _, _, path, _, _, _, _) or
summaryModel(_, _, _, _, _, _, _, path, _, _, _) or
sinkModel(_, _, _, _, _, _, path, _, _, _) or
sourceModel(_, _, _, _, _, _, path, _, _, _)
}
private module MkAccessPath = AccessPathSyntax::AccessPath<getRelevantAccessPath/1>;
class AccessPath = MkAccessPath::AccessPath;
class AccessPathToken = MkAccessPath::AccessPathToken;
private string getInvalidModelInput() {
exists(string pred, AccessPath input, string part |
exists(string pred, AccessPath input, AccessPathToken part |
sinkModel(_, _, _, _, _, _, input, _, _, _) and pred = "sink"
or
summaryModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "summary"
@@ -161,24 +166,33 @@ module ModelValidation {
(
invalidSpecComponent(input, part) and
not part = "" and
not parseArg(part, _)
not (part = "Argument" and pred = "sink") and
not parseArg(part, _) and
not part.getName() = "Field"
or
part = input.getToken(_) and
part = input.getToken(0) and
parseParam(part, _)
or
invalidIndexComponent(input, part)
) and
result = "Unrecognized input specification \"" + part + "\" in " + pred + " model."
)
}
private string getInvalidModelOutput() {
exists(string pred, string output, string part |
exists(string pred, AccessPath output, AccessPathToken part |
sourceModel(_, _, _, _, _, _, output, _, _, _) and pred = "source"
or
summaryModel(_, _, _, _, _, _, _, output, _, _, _) and pred = "summary"
|
invalidSpecComponent(output, part) and
not part = "" and
not (part = "Parameter" and pred = "source") and
(
invalidSpecComponent(output, part) and
not part = "" and
not (part = ["Argument", "Parameter"] and pred = "source") and
not part.getName() = "Field"
or
invalidIndexComponent(output, part)
) and
result = "Unrecognized output specification \"" + part + "\" in " + pred + " model."
)
}
@@ -189,6 +203,8 @@ module ModelValidation {
predicate sinkKind(string kind) { sinkModel(_, _, _, _, _, _, _, kind, _, _) }
predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) }
predicate neutralKind(string kind) { neutralModel(_, _, _, _, kind, _) }
}
private module KindVal = SharedModelVal::KindValidation<KindValConfig>;
@@ -204,6 +220,10 @@ module ModelValidation {
or
summaryModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and
pred = "summary"
or
neutralModel(package, type, name, signature, _, provenance) and
ext = "" and
pred = "neutral"
|
not package.replaceAll("$ANYVERSION", "").regexpMatch("[a-zA-Z0-9_\\./-]*") and
result = "Dubious package \"" + package + "\" in " + pred + " model."
@@ -239,31 +259,15 @@ pragma[nomagic]
private predicate elementSpec(
string package, string type, boolean subtypes, string name, string signature, string ext
) {
sourceModel(package, type, subtypes, name, signature, ext, _, _, _, _) or
sinkModel(package, type, subtypes, name, signature, ext, _, _, _, _) or
sourceModel(package, type, subtypes, name, signature, ext, _, _, _, _)
or
sinkModel(package, type, subtypes, name, signature, ext, _, _, _, _)
or
summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _, _)
}
private string paramsStringPart(Function f, int i) {
i = -1 and result = "("
or
exists(int n, string p | f.getParameterType(n).toString() = p |
i = 2 * n and result = p
or
i = 2 * n - 1 and result = "," and n != 0
)
or
i = 2 * f.getNumParameter() and result = ")"
neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = false
}
/**
* Gets a parenthesized string containing all parameter types of this callable, separated by a comma.
*
* Returns the empty string if the callable has no parameters.
* Parameter types are represented by their type erasure.
*/
string paramsString(Function f) { result = concat(int i | | paramsStringPart(f, i) order by i) }
bindingset[p]
private string interpretPackage(string p) {
exists(string r | r = "([^$]+)([./]\\$ANYVERSION(/|$)(.*))?" |
@@ -276,6 +280,7 @@ private string interpretPackage(string p) {
}
/** Gets the source/sink/summary element corresponding to the supplied parameters. */
cached
SourceSinkInterpretationInput::SourceOrSinkElement interpretElement(
string pkg, string type, boolean subtypes, string name, string signature, string ext
) {
@@ -296,22 +301,16 @@ SourceSinkInterpretationInput::SourceOrSinkElement interpretElement(
)
}
/** Holds if there is an external specification for `f`. */
predicate hasExternalSpecification(Function f) {
f = any(SummarizedCallable sc).asFunction()
or
exists(SourceSinkInterpretationInput::SourceOrSinkElement e | f = e.asEntity() |
SourceSinkInterpretationInput::sourceElement(e, _, _, _, _) or
SourceSinkInterpretationInput::sinkElement(e, _, _, _, _)
)
}
private predicate parseField(AccessPathToken c, DataFlow::FieldContent f) {
exists(string fieldRegex, string package, string className, string fieldName |
fieldRegex = "^Field\\[(.*)\\.([^.]+)\\.([^.]+)\\]$" and
package = c.regexpCapture(fieldRegex, 1) and
className = c.regexpCapture(fieldRegex, 2) and
fieldName = c.regexpCapture(fieldRegex, 3) and
exists(
string fieldRegex, string qualifiedName, string package, string className, string fieldName
|
c.getName() = "Field" and
qualifiedName = c.getAnArgument() and
fieldRegex = "^(.*)\\.([^.]+)\\.([^.]+)$" and
package = qualifiedName.regexpCapture(fieldRegex, 1) and
className = qualifiedName.regexpCapture(fieldRegex, 2) and
fieldName = qualifiedName.regexpCapture(fieldRegex, 3) and
f.getField().hasQualifiedName(package, className, fieldName)
)
}
@@ -328,11 +327,12 @@ class SyntheticField extends string {
}
private predicate parseSynthField(AccessPathToken c, string f) {
c.regexpCapture("SyntheticField\\[([.a-zA-Z0-9]+)\\]", 1) = f
c.getName() = "SyntheticField" and
f = c.getAnArgument()
}
/** Holds if the specification component parses as a `Content`. */
predicate parseContent(string component, DataFlow::Content content) {
predicate parseContent(AccessPathToken component, DataFlow::Content content) {
parseField(component, content)
or
parseSynthField(component, content.(DataFlow::SyntheticFieldContent).getField())
@@ -387,29 +387,15 @@ predicate sourceNode(DataFlow::Node node, string kind) { sourceNode(node, kind,
*/
predicate sinkNode(DataFlow::Node node, string kind) { sinkNode(node, kind, _) }
private predicate interpretSummary(
Callable c, string input, string output, string kind, string provenance, string model
) {
exists(
string namespace, string type, boolean subtypes, string name, string signature, string ext,
QlBuiltins::ExtensionId madId
|
summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance,
madId) and
model = "MaD:" + madId.toString() and
c.asFunction() = interpretElement(namespace, type, subtypes, name, signature, ext).asEntity()
)
}
// adapter class for converting Mad summaries to `SummarizedCallable`s
private class SummarizedCallableAdapter extends SummarizedCallable {
SummarizedCallableAdapter() { interpretSummary(this, _, _, _, _, _) }
SummarizedCallableAdapter() { summaryElement(this, _, _, _, _, _) }
private predicate relevantSummaryElementManual(
string input, string output, string kind, string model
) {
exists(Provenance provenance |
interpretSummary(this, input, output, kind, provenance, model) and
summaryElement(this, input, output, kind, provenance, model) and
provenance.isManual()
)
}
@@ -418,8 +404,12 @@ private class SummarizedCallableAdapter extends SummarizedCallable {
string input, string output, string kind, string model
) {
exists(Provenance provenance |
interpretSummary(this, input, output, kind, provenance, model) and
summaryElement(this, input, output, kind, provenance, model) and
provenance.isGenerated()
) and
not exists(Provenance provenance |
neutralElement(this, "summary", provenance) and
provenance.isManual()
)
}
@@ -437,7 +427,7 @@ private class SummarizedCallableAdapter extends SummarizedCallable {
}
override predicate hasProvenance(Provenance provenance) {
interpretSummary(this, _, _, _, provenance, _)
summaryElement(this, _, _, _, provenance, _)
}
}
@@ -446,13 +436,7 @@ private class NeutralCallableAdapter extends NeutralCallable {
string kind;
string provenance_;
NeutralCallableAdapter() {
// Neutral models have not been implemented for Go.
none() and
exists(this) and
exists(kind) and
exists(provenance_)
}
NeutralCallableAdapter() { neutralElement(this, kind, provenance_) }
override string getKind() { result = kind }

View File

@@ -25,3 +25,10 @@ extensible predicate summaryModel(
string package, string type, boolean subtypes, string name, string signature, string ext,
string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId
);
/**
* Holds if a neutral model exists for the given parameters.
*/
extensible predicate neutralModel(
string package, string type, string name, string signature, string kind, string provenance
);

View File

@@ -15,6 +15,11 @@ private module FlowSummaries {
private import semmle.go.dataflow.FlowSummary as F
}
bindingset[pos]
private string positionToString(int pos) {
if pos = -1 then result = "receiver" else result = pos.toString()
}
module Input implements InputSig<Location, DataFlowImplSpecific::GoDataFlow> {
class SummarizedCallableBase = Callable;
@@ -22,9 +27,9 @@ module Input implements InputSig<Location, DataFlowImplSpecific::GoDataFlow> {
ReturnKind getStandardReturnValueKind() { result = getReturnKind(0) }
string encodeParameterPosition(ParameterPosition pos) { result = pos.toString() }
string encodeParameterPosition(ParameterPosition pos) { result = positionToString(pos) }
string encodeArgumentPosition(ArgumentPosition pos) { result = pos.toString() }
string encodeArgumentPosition(ArgumentPosition pos) { result = positionToString(pos) }
string encodeReturn(ReturnKind rk, string arg) {
exists(int pos |
@@ -273,6 +278,37 @@ module Private {
module External {
import Impl::Private::External
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
/**
* Holds if an external flow summary exists for `c` with input specification
* `input`, output specification `output`, kind `kind`, and provenance `provenance`.
*/
predicate summaryElement(
Input::SummarizedCallableBase c, string input, string output, string kind, string provenance,
string model
) {
exists(
string namespace, string type, boolean subtypes, string name, string signature, string ext,
QlBuiltins::ExtensionId madId
|
summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind,
provenance, madId) and
model = "MaD:" + madId.toString() and
c.asFunction() =
interpretElement(namespace, type, subtypes, name, signature, ext).asEntity()
)
}
/**
* Holds if a neutral model exists for `c` of kind `kind`
* and with provenance `provenance`.
*/
predicate neutralElement(Input::SummarizedCallableBase c, string kind, string provenance) {
exists(string namespace, string type, string name, string signature |
neutralModel(namespace, type, name, signature, kind, provenance) and
c.asFunction() = interpretElement(namespace, type, false, name, signature, "").asEntity()
)
}
}
/**

View File

@@ -1,2 +1,3 @@
testFailures
failures
invalidModelRow
testFailures

View File

@@ -1,4 +1,6 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineExpectationsTest
import experimental.frameworks.DecompressionBombs::DecompressionBomb

View File

@@ -0,0 +1,2 @@
invalidModelRow
testFailures

View File

@@ -1,4 +1,6 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import experimental.frameworks.CleverGo
import TestUtilities.InlineFlowTest
import DefaultFlowTest

View File

@@ -0,0 +1,2 @@
invalidModelRow
testFailures

View File

@@ -1,4 +1,6 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import experimental.frameworks.Fiber
import TestUtilities.InlineFlowTest
import DefaultFlowTest

View File

@@ -1,2 +1,3 @@
failures
invalidModelRow
testFailures

View File

@@ -1,4 +1,6 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineExpectationsTest
module LoggerTest implements TestSig {

View File

@@ -0,0 +1,2 @@
invalidModelRow
testFailures

View File

@@ -1,3 +1,5 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineFlowTest
import DefaultFlowTest

View File

@@ -1,3 +1,4 @@
invalidModelRow
edges
| test.go:9:9:9:11 | selection of c [collection] | test.go:9:7:9:11 | <-... | provenance | |
| test.go:13:16:13:16 | definition of s [pointer, c, collection] | test.go:16:2:16:2 | s [pointer, c, collection] | provenance | |

View File

@@ -1,4 +1,6 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineFlowTest
module Flow = DataFlow::Global<DefaultFlowConfig>;

View File

@@ -5,10 +5,11 @@ extensions:
data:
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResArrayContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgArrayContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
@@ -21,17 +22,20 @@ extensions:
- ["github.com/nonexistent/test", "", False, "GetElement", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "GetMapKey", "", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "SetElement", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- addsTo:
pack: codeql/go-all
extensible: neutralModel
data:
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
- addsTo:
pack: codeql/go-all
extensible: sourceModel
data:
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
- addsTo:
pack: codeql/go-all
extensible: sinkModel

View File

@@ -1,44 +1,45 @@
invalidModelRow
#select
| test.go:47:10:47:12 | arg | qltest |
| test.go:48:2:48:13 | type assertion | qltest |
| test.go:61:10:61:15 | taint1 | qltest |
| test.go:64:10:64:15 | taint2 | qltest |
| test.go:68:10:68:15 | taint3 | qltest |
| test.go:72:10:72:15 | taint4 | qltest |
| test.go:75:10:75:15 | taint5 | qltest |
| test.go:79:10:79:15 | taint6 | qltest |
| test.go:82:10:82:15 | taint7 | qltest |
| test.go:85:10:85:18 | index expression | qltest |
| test.go:87:11:87:11 | x | qltest |
| test.go:90:11:90:11 | x | qltest |
| test.go:95:10:95:15 | taint9 | qltest |
| test.go:98:10:98:33 | call to GetElement | qltest |
| test.go:99:10:99:18 | <-... | qltest |
| test.go:101:11:101:11 | e | qltest |
| test.go:104:11:104:11 | e | qltest |
| test.go:109:10:109:16 | taint11 | qltest |
| test.go:112:10:112:32 | call to GetMapKey | qltest |
| test.go:114:11:114:11 | k | qltest |
| test.go:117:11:117:11 | k | qltest |
| test.go:120:11:120:11 | k | qltest |
| test.go:123:11:123:11 | k | qltest |
| test.go:128:10:128:16 | taint13 | qltest |
| test.go:131:10:131:20 | index expression | qltest |
| test.go:133:11:133:11 | v | qltest |
| test.go:136:11:136:11 | v | qltest |
| test.go:141:10:141:16 | taint15 | qltest |
| test.go:145:10:145:17 | index expression | qltest |
| test.go:151:10:151:18 | index expression | qltest |
| test.go:156:10:156:16 | taint16 | qltest |
| test.go:160:10:160:13 | selection of F | qltest |
| test.go:163:10:163:17 | call to Get | qltest |
| test.go:167:10:167:17 | call to Get | qltest |
| test.go:48:10:48:12 | arg | qltest |
| test.go:49:2:49:13 | type assertion | qltest |
| test.go:62:10:62:15 | taint1 | qltest |
| test.go:65:10:65:15 | taint2 | qltest |
| test.go:69:10:69:15 | taint3 | qltest |
| test.go:73:10:73:22 | taint3ignored | qltest |
| test.go:77:10:77:15 | taint4 | qltest |
| test.go:80:10:80:15 | taint5 | qltest |
| test.go:84:10:84:15 | taint6 | qltest |
| test.go:87:10:87:15 | taint7 | qltest |
| test.go:90:10:90:18 | index expression | qltest |
| test.go:92:11:92:11 | x | qltest |
| test.go:95:11:95:11 | x | qltest |
| test.go:100:10:100:15 | taint9 | qltest |
| test.go:103:10:103:33 | call to GetElement | qltest |
| test.go:104:10:104:18 | <-... | qltest |
| test.go:106:11:106:11 | e | qltest |
| test.go:109:11:109:11 | e | qltest |
| test.go:114:10:114:16 | taint11 | qltest |
| test.go:117:10:117:32 | call to GetMapKey | qltest |
| test.go:119:11:119:11 | k | qltest |
| test.go:122:11:122:11 | k | qltest |
| test.go:125:11:125:11 | k | qltest |
| test.go:128:11:128:11 | k | qltest |
| test.go:133:10:133:16 | taint13 | qltest |
| test.go:136:10:136:20 | index expression | qltest |
| test.go:138:11:138:11 | v | qltest |
| test.go:141:11:141:11 | v | qltest |
| test.go:146:10:146:16 | taint15 | qltest |
| test.go:150:10:150:17 | index expression | qltest |
| test.go:156:10:156:18 | index expression | qltest |
| test.go:161:10:161:16 | taint16 | qltest |
| test.go:165:10:165:13 | selection of F | qltest |
| test.go:168:10:168:17 | call to Get | qltest |
| test.go:172:10:172:17 | call to Get | qltest |
| test.go:176:10:176:14 | selection of F | qltest |
| test.go:179:10:179:32 | call to GetThroughPointer | qltest |
| test.go:183:10:183:32 | call to GetThroughPointer | qltest |
| test.go:177:10:177:17 | call to Get | qltest |
| test.go:181:10:181:14 | selection of F | qltest |
| test.go:184:10:184:32 | call to GetThroughPointer | qltest |
| test.go:188:10:188:32 | call to GetThroughPointer | qltest |
| test.go:194:17:194:20 | arg1 | qltest |
| test.go:194:23:194:26 | arg2 | qltest |
| test.go:194:29:194:32 | arg3 | qltest |
| test.go:193:10:193:32 | call to GetThroughPointer | qltest |
| test.go:199:17:199:20 | arg1 | qltest |
| test.go:199:23:199:26 | arg2 | qltest |
| test.go:199:29:199:32 | arg3 | qltest |

View File

@@ -4,5 +4,5 @@ extensions:
extensible: sinkModel
data:
- ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[-1]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[receiver]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]

View File

@@ -1,23 +1,23 @@
invalidModelRow
#select
| test.go:10:6:10:8 | definition of arg | qltest-arg |
| test.go:38:8:38:15 | call to Src1 | qltest |
| test.go:39:8:39:15 | call to Src2 | qltest |
| test.go:39:8:39:15 | call to Src2 | qltest-w-subtypes |
| test.go:40:8:40:16 | call to Src2 | qltest-w-subtypes |
| test.go:41:2:41:21 | ... = ...[0] | qltest |
| test.go:41:2:41:21 | ... = ...[1] | qltest-w-subtypes |
| test.go:42:2:42:22 | ... = ...[1] | qltest-w-subtypes |
| test.go:58:9:58:16 | call to Src1 | qltest |
| test.go:97:46:97:53 | call to Src1 | qltest |
| test.go:107:35:107:42 | call to Src1 | qltest |
| test.go:111:42:111:49 | call to Src1 | qltest |
| test.go:154:8:154:15 | call to Src1 | qltest |
| test.go:159:9:159:16 | call to Src1 | qltest |
| test.go:162:15:162:22 | call to Src1 | qltest |
| test.go:166:9:166:16 | call to Src1 | qltest |
| test.go:170:9:170:16 | call to Src1 | qltest |
| test.go:175:24:175:31 | call to Src1 | qltest |
| test.go:178:17:178:24 | call to Src1 | qltest |
| test.go:182:24:182:31 | call to Src1 | qltest |
| test.go:186:24:186:31 | call to Src1 | qltest |
| test.go:39:8:39:15 | call to Src1 | qltest |
| test.go:40:8:40:15 | call to Src2 | qltest |
| test.go:40:8:40:15 | call to Src2 | qltest-w-subtypes |
| test.go:41:8:41:16 | call to Src2 | qltest-w-subtypes |
| test.go:42:2:42:21 | ... = ...[0] | qltest |
| test.go:42:2:42:21 | ... = ...[1] | qltest-w-subtypes |
| test.go:43:2:43:22 | ... = ...[1] | qltest-w-subtypes |
| test.go:59:9:59:16 | call to Src1 | qltest |
| test.go:102:46:102:53 | call to Src1 | qltest |
| test.go:112:35:112:42 | call to Src1 | qltest |
| test.go:116:42:116:49 | call to Src1 | qltest |
| test.go:159:8:159:15 | call to Src1 | qltest |
| test.go:164:9:164:16 | call to Src1 | qltest |
| test.go:167:15:167:22 | call to Src1 | qltest |
| test.go:171:9:171:16 | call to Src1 | qltest |
| test.go:175:9:175:16 | call to Src1 | qltest |
| test.go:180:24:180:31 | call to Src1 | qltest |
| test.go:183:17:183:24 | call to Src1 | qltest |
| test.go:187:24:187:31 | call to Src1 | qltest |
| test.go:191:24:191:31 | call to Src1 | qltest |

View File

@@ -3,14 +3,14 @@ invalidModelRow
| test.go:17:23:17:25 | arg | test.go:17:10:17:26 | call to StepArgRes |
| test.go:18:27:18:29 | arg | test.go:18:2:18:30 | ... = ...[1] |
| test.go:19:15:19:17 | arg | test.go:11:6:11:9 | definition of arg1 |
| test.go:20:16:20:18 | arg | test.go:13:6:13:6 | definition of t |
| test.go:21:10:21:10 | t | test.go:21:10:21:24 | call to StepQualRes |
| test.go:22:2:22:2 | t | test.go:10:6:10:8 | definition of arg |
| test.go:23:32:23:34 | arg | test.go:23:10:23:35 | call to StepArgResNoQual |
| test.go:60:25:60:27 | src | test.go:60:12:60:28 | call to StepArgRes |
| test.go:63:29:63:31 | src | test.go:63:2:63:32 | ... := ...[1] |
| test.go:67:15:67:17 | src | test.go:66:6:66:11 | definition of taint3 |
| test.go:71:21:71:23 | src | test.go:70:6:70:11 | definition of taint4 |
| test.go:74:13:74:25 | type assertion | test.go:74:12:74:40 | call to StepQualRes |
| test.go:78:3:78:15 | type assertion | test.go:77:6:77:11 | definition of taint6 |
| test.go:81:34:81:36 | src | test.go:81:12:81:37 | call to StepArgResNoQual |
| test.go:21:16:21:18 | arg | test.go:13:6:13:6 | definition of t |
| test.go:22:10:22:10 | t | test.go:22:10:22:24 | call to StepQualRes |
| test.go:23:2:23:2 | t | test.go:10:6:10:8 | definition of arg |
| test.go:24:32:24:34 | arg | test.go:24:10:24:35 | call to StepArgResNoQual |
| test.go:61:25:61:27 | src | test.go:61:12:61:28 | call to StepArgRes |
| test.go:64:29:64:31 | src | test.go:64:2:64:32 | ... := ...[1] |
| test.go:68:15:68:17 | src | test.go:67:6:67:11 | definition of taint3 |
| test.go:76:21:76:23 | src | test.go:75:6:75:11 | definition of taint4 |
| test.go:79:13:79:25 | type assertion | test.go:79:12:79:40 | call to StepQualRes |
| test.go:83:3:83:15 | type assertion | test.go:82:6:82:11 | definition of taint6 |
| test.go:86:34:86:36 | src | test.go:86:12:86:37 | call to StepArgResNoQual |

View File

@@ -5,10 +5,16 @@ extensions:
data:
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "taint", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
- addsTo:
pack: codeql/go-all
extensible: neutralModel
data:
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]

View File

@@ -17,6 +17,7 @@ func main() {
taint = t.StepArgRes(arg)
_, taint = t.StepArgRes1(arg)
t.StepArgArg(arg, arg1)
t.StepArgArgIgnored(arg, arg1)
t.StepArgQual(arg)
taint = t.StepQualRes()
t.StepQualArg(arg)
@@ -67,6 +68,10 @@ func simpleflow() {
t.StepArgArg(src, taint3)
b.Sink1(taint3) // $ hasTaintFlow="taint3"
var taint3ignored interface{}
t.StepArgArgIgnored(src, taint3ignored)
b.Sink1(taint3ignored)
var taint4 test.T
taint4.StepArgQual(src)
b.Sink1(taint4) // $ hasTaintFlow="taint4"

View File

@@ -8,6 +8,8 @@ func (t *T) StepArgRes1(arg interface{}) (interface{}, interface{}) { return nil
func (t *T) StepArgArg(a1 interface{}, a2 interface{}) {}
func (t *T) StepArgArgIgnored(a1 interface{}, a2 interface{}) {}
func (t *T) StepArgQual(arg interface{}) {}
func (t *T) StepQualRes() interface{} { return nil }

View File

@@ -5,10 +5,11 @@ extensions:
data:
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResArrayContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgArrayContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"]
@@ -21,17 +22,20 @@ extensions:
- ["github.com/nonexistent/test", "", False, "GetElement", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "GetMapKey", "", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "SetElement", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[-1].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "GetThroughPointer", "", "", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[receiver].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- ["github.com/nonexistent/test", "C", False, "SetThroughPointer", "", "", "Argument[0]", "Argument[receiver].Dereference.Field[github.com/nonexistent/test.C.F]", "value", "manual"]
- addsTo:
pack: codeql/go-all
extensible: neutralModel
data:
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]
- addsTo:
pack: codeql/go-all
extensible: sourceModel
data:
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
- addsTo:
pack: codeql/go-all
extensible: sinkModel

View File

@@ -1,50 +1,51 @@
invalidModelRow
#select
| test.go:47:10:47:12 | arg | qltest |
| test.go:48:2:48:13 | type assertion | qltest |
| test.go:61:10:61:15 | taint1 | qltest |
| test.go:64:10:64:15 | taint2 | qltest |
| test.go:68:10:68:15 | taint3 | qltest |
| test.go:72:10:72:15 | taint4 | qltest |
| test.go:75:10:75:15 | taint5 | qltest |
| test.go:79:10:79:15 | taint6 | qltest |
| test.go:82:10:82:15 | taint7 | qltest |
| test.go:85:10:85:18 | index expression | qltest |
| test.go:87:11:87:11 | x | qltest |
| test.go:90:11:90:11 | x | qltest |
| test.go:95:10:95:15 | taint9 | qltest |
| test.go:98:10:98:33 | call to GetElement | qltest |
| test.go:99:10:99:18 | <-... | qltest |
| test.go:101:11:101:11 | e | qltest |
| test.go:104:11:104:11 | e | qltest |
| test.go:109:10:109:16 | taint11 | qltest |
| test.go:112:10:112:32 | call to GetMapKey | qltest |
| test.go:114:11:114:11 | k | qltest |
| test.go:117:11:117:11 | k | qltest |
| test.go:120:11:120:11 | k | qltest |
| test.go:123:11:123:11 | k | qltest |
| test.go:128:10:128:16 | taint13 | qltest |
| test.go:131:10:131:20 | index expression | qltest |
| test.go:133:11:133:11 | v | qltest |
| test.go:136:11:136:11 | v | qltest |
| test.go:141:10:141:16 | taint15 | qltest |
| test.go:145:10:145:17 | index expression | qltest |
| test.go:151:10:151:18 | index expression | qltest |
| test.go:156:10:156:16 | taint16 | qltest |
| test.go:160:10:160:13 | selection of F | qltest |
| test.go:163:10:163:17 | call to Get | qltest |
| test.go:167:10:167:17 | call to Get | qltest |
| test.go:48:10:48:12 | arg | qltest |
| test.go:49:2:49:13 | type assertion | qltest |
| test.go:62:10:62:15 | taint1 | qltest |
| test.go:65:10:65:15 | taint2 | qltest |
| test.go:69:10:69:15 | taint3 | qltest |
| test.go:73:10:73:22 | taint3ignored | qltest |
| test.go:77:10:77:15 | taint4 | qltest |
| test.go:80:10:80:15 | taint5 | qltest |
| test.go:84:10:84:15 | taint6 | qltest |
| test.go:87:10:87:15 | taint7 | qltest |
| test.go:90:10:90:18 | index expression | qltest |
| test.go:92:11:92:11 | x | qltest |
| test.go:95:11:95:11 | x | qltest |
| test.go:100:10:100:15 | taint9 | qltest |
| test.go:103:10:103:33 | call to GetElement | qltest |
| test.go:104:10:104:18 | <-... | qltest |
| test.go:106:11:106:11 | e | qltest |
| test.go:109:11:109:11 | e | qltest |
| test.go:114:10:114:16 | taint11 | qltest |
| test.go:117:10:117:32 | call to GetMapKey | qltest |
| test.go:119:11:119:11 | k | qltest |
| test.go:122:11:122:11 | k | qltest |
| test.go:125:11:125:11 | k | qltest |
| test.go:128:11:128:11 | k | qltest |
| test.go:133:10:133:16 | taint13 | qltest |
| test.go:136:10:136:20 | index expression | qltest |
| test.go:138:11:138:11 | v | qltest |
| test.go:141:11:141:11 | v | qltest |
| test.go:146:10:146:16 | taint15 | qltest |
| test.go:150:10:150:17 | index expression | qltest |
| test.go:156:10:156:18 | index expression | qltest |
| test.go:161:10:161:16 | taint16 | qltest |
| test.go:165:10:165:13 | selection of F | qltest |
| test.go:168:10:168:17 | call to Get | qltest |
| test.go:172:10:172:17 | call to Get | qltest |
| test.go:176:10:176:14 | selection of F | qltest |
| test.go:179:10:179:32 | call to GetThroughPointer | qltest |
| test.go:183:10:183:32 | call to GetThroughPointer | qltest |
| test.go:177:10:177:17 | call to Get | qltest |
| test.go:181:10:181:14 | selection of F | qltest |
| test.go:184:10:184:32 | call to GetThroughPointer | qltest |
| test.go:188:10:188:32 | call to GetThroughPointer | qltest |
| test.go:194:17:194:20 | arg1 | qltest |
| test.go:194:23:194:26 | arg2 | qltest |
| test.go:194:29:194:32 | arg3 | qltest |
| test.go:197:10:197:26 | call to max | qltest |
| test.go:198:10:198:26 | call to max | qltest |
| test.go:199:10:199:26 | call to max | qltest |
| test.go:200:10:200:26 | call to min | qltest |
| test.go:201:10:201:26 | call to min | qltest |
| test.go:202:10:202:26 | call to min | qltest |
| test.go:193:10:193:32 | call to GetThroughPointer | qltest |
| test.go:199:17:199:20 | arg1 | qltest |
| test.go:199:23:199:26 | arg2 | qltest |
| test.go:199:29:199:32 | arg3 | qltest |
| test.go:202:10:202:26 | call to max | qltest |
| test.go:203:10:203:26 | call to max | qltest |
| test.go:204:10:204:26 | call to max | qltest |
| test.go:205:10:205:26 | call to min | qltest |
| test.go:206:10:206:26 | call to min | qltest |
| test.go:207:10:207:26 | call to min | qltest |

View File

@@ -4,5 +4,5 @@ extensions:
extensible: sinkModel
data:
- ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[-1]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[receiver]", "qltest", "manual"]
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]

View File

@@ -1,23 +1,23 @@
invalidModelRow
#select
| test.go:10:6:10:8 | definition of arg | qltest-arg |
| test.go:38:8:38:15 | call to Src1 | qltest |
| test.go:39:8:39:15 | call to Src2 | qltest |
| test.go:39:8:39:15 | call to Src2 | qltest-w-subtypes |
| test.go:40:8:40:16 | call to Src2 | qltest-w-subtypes |
| test.go:41:2:41:21 | ... = ...[0] | qltest |
| test.go:41:2:41:21 | ... = ...[1] | qltest-w-subtypes |
| test.go:42:2:42:22 | ... = ...[1] | qltest-w-subtypes |
| test.go:58:9:58:16 | call to Src1 | qltest |
| test.go:97:46:97:53 | call to Src1 | qltest |
| test.go:107:35:107:42 | call to Src1 | qltest |
| test.go:111:42:111:49 | call to Src1 | qltest |
| test.go:154:8:154:15 | call to Src1 | qltest |
| test.go:159:9:159:16 | call to Src1 | qltest |
| test.go:162:15:162:22 | call to Src1 | qltest |
| test.go:166:9:166:16 | call to Src1 | qltest |
| test.go:170:9:170:16 | call to Src1 | qltest |
| test.go:175:24:175:31 | call to Src1 | qltest |
| test.go:178:17:178:24 | call to Src1 | qltest |
| test.go:182:24:182:31 | call to Src1 | qltest |
| test.go:186:24:186:31 | call to Src1 | qltest |
| test.go:39:8:39:15 | call to Src1 | qltest |
| test.go:40:8:40:15 | call to Src2 | qltest |
| test.go:40:8:40:15 | call to Src2 | qltest-w-subtypes |
| test.go:41:8:41:16 | call to Src2 | qltest-w-subtypes |
| test.go:42:2:42:21 | ... = ...[0] | qltest |
| test.go:42:2:42:21 | ... = ...[1] | qltest-w-subtypes |
| test.go:43:2:43:22 | ... = ...[1] | qltest-w-subtypes |
| test.go:59:9:59:16 | call to Src1 | qltest |
| test.go:102:46:102:53 | call to Src1 | qltest |
| test.go:112:35:112:42 | call to Src1 | qltest |
| test.go:116:42:116:49 | call to Src1 | qltest |
| test.go:159:8:159:15 | call to Src1 | qltest |
| test.go:164:9:164:16 | call to Src1 | qltest |
| test.go:167:15:167:22 | call to Src1 | qltest |
| test.go:171:9:171:16 | call to Src1 | qltest |
| test.go:175:9:175:16 | call to Src1 | qltest |
| test.go:180:24:180:31 | call to Src1 | qltest |
| test.go:183:17:183:24 | call to Src1 | qltest |
| test.go:187:24:187:31 | call to Src1 | qltest |
| test.go:191:24:191:31 | call to Src1 | qltest |

View File

@@ -3,32 +3,32 @@ invalidModelRow
| test.go:17:23:17:25 | arg | test.go:17:10:17:26 | call to StepArgRes |
| test.go:18:27:18:29 | arg | test.go:18:2:18:30 | ... = ...[1] |
| test.go:19:15:19:17 | arg | test.go:11:6:11:9 | definition of arg1 |
| test.go:20:16:20:18 | arg | test.go:13:6:13:6 | definition of t |
| test.go:21:10:21:10 | t | test.go:21:10:21:24 | call to StepQualRes |
| test.go:22:2:22:2 | t | test.go:10:6:10:8 | definition of arg |
| test.go:23:32:23:34 | arg | test.go:23:10:23:35 | call to StepArgResNoQual |
| test.go:60:25:60:27 | src | test.go:60:12:60:28 | call to StepArgRes |
| test.go:63:29:63:31 | src | test.go:63:2:63:32 | ... := ...[1] |
| test.go:67:15:67:17 | src | test.go:66:6:66:11 | definition of taint3 |
| test.go:71:21:71:23 | src | test.go:70:6:70:11 | definition of taint4 |
| test.go:74:13:74:25 | type assertion | test.go:74:12:74:40 | call to StepQualRes |
| test.go:78:3:78:15 | type assertion | test.go:77:6:77:11 | definition of taint6 |
| test.go:81:34:81:36 | src | test.go:81:12:81:37 | call to StepArgResNoQual |
| test.go:197:14:197:19 | srcInt | test.go:197:10:197:26 | call to max |
| test.go:197:22:197:22 | 0 | test.go:197:10:197:26 | call to max |
| test.go:197:25:197:25 | 1 | test.go:197:10:197:26 | call to max |
| test.go:198:14:198:14 | 0 | test.go:198:10:198:26 | call to max |
| test.go:198:17:198:22 | srcInt | test.go:198:10:198:26 | call to max |
| test.go:198:25:198:25 | 1 | test.go:198:10:198:26 | call to max |
| test.go:199:14:199:14 | 0 | test.go:199:10:199:26 | call to max |
| test.go:199:17:199:17 | 1 | test.go:199:10:199:26 | call to max |
| test.go:199:20:199:25 | srcInt | test.go:199:10:199:26 | call to max |
| test.go:200:14:200:19 | srcInt | test.go:200:10:200:26 | call to min |
| test.go:200:22:200:22 | 0 | test.go:200:10:200:26 | call to min |
| test.go:200:25:200:25 | 1 | test.go:200:10:200:26 | call to min |
| test.go:201:14:201:14 | 0 | test.go:201:10:201:26 | call to min |
| test.go:201:17:201:22 | srcInt | test.go:201:10:201:26 | call to min |
| test.go:201:25:201:25 | 1 | test.go:201:10:201:26 | call to min |
| test.go:202:14:202:14 | 0 | test.go:202:10:202:26 | call to min |
| test.go:202:17:202:17 | 1 | test.go:202:10:202:26 | call to min |
| test.go:202:20:202:25 | srcInt | test.go:202:10:202:26 | call to min |
| test.go:21:16:21:18 | arg | test.go:13:6:13:6 | definition of t |
| test.go:22:10:22:10 | t | test.go:22:10:22:24 | call to StepQualRes |
| test.go:23:2:23:2 | t | test.go:10:6:10:8 | definition of arg |
| test.go:24:32:24:34 | arg | test.go:24:10:24:35 | call to StepArgResNoQual |
| test.go:61:25:61:27 | src | test.go:61:12:61:28 | call to StepArgRes |
| test.go:64:29:64:31 | src | test.go:64:2:64:32 | ... := ...[1] |
| test.go:68:15:68:17 | src | test.go:67:6:67:11 | definition of taint3 |
| test.go:76:21:76:23 | src | test.go:75:6:75:11 | definition of taint4 |
| test.go:79:13:79:25 | type assertion | test.go:79:12:79:40 | call to StepQualRes |
| test.go:83:3:83:15 | type assertion | test.go:82:6:82:11 | definition of taint6 |
| test.go:86:34:86:36 | src | test.go:86:12:86:37 | call to StepArgResNoQual |
| test.go:202:14:202:19 | srcInt | test.go:202:10:202:26 | call to max |
| test.go:202:22:202:22 | 0 | test.go:202:10:202:26 | call to max |
| test.go:202:25:202:25 | 1 | test.go:202:10:202:26 | call to max |
| test.go:203:14:203:14 | 0 | test.go:203:10:203:26 | call to max |
| test.go:203:17:203:22 | srcInt | test.go:203:10:203:26 | call to max |
| test.go:203:25:203:25 | 1 | test.go:203:10:203:26 | call to max |
| test.go:204:14:204:14 | 0 | test.go:204:10:204:26 | call to max |
| test.go:204:17:204:17 | 1 | test.go:204:10:204:26 | call to max |
| test.go:204:20:204:25 | srcInt | test.go:204:10:204:26 | call to max |
| test.go:205:14:205:19 | srcInt | test.go:205:10:205:26 | call to min |
| test.go:205:22:205:22 | 0 | test.go:205:10:205:26 | call to min |
| test.go:205:25:205:25 | 1 | test.go:205:10:205:26 | call to min |
| test.go:206:14:206:14 | 0 | test.go:206:10:206:26 | call to min |
| test.go:206:17:206:22 | srcInt | test.go:206:10:206:26 | call to min |
| test.go:206:25:206:25 | 1 | test.go:206:10:206:26 | call to min |
| test.go:207:14:207:14 | 0 | test.go:207:10:207:26 | call to min |
| test.go:207:17:207:17 | 1 | test.go:207:10:207:26 | call to min |
| test.go:207:20:207:25 | srcInt | test.go:207:10:207:26 | call to min |

View File

@@ -5,10 +5,16 @@ extensions:
data:
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgArgIgnored", "", "", "Argument[0]", "Argument[1]", "value", "df-generated"]
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[receiver]", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[receiver]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[receiver]", "Argument[0]", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgResContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "value", "manual"]
- ["github.com/nonexistent/test", "", False, "StepArgContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"]
- addsTo:
pack: codeql/go-all
extensible: neutralModel
data:
- ["github.com/nonexistent/test", "T", "StepArgArgIgnored", "", "summary", "manual"]

View File

@@ -17,6 +17,7 @@ func main() {
taint = t.StepArgRes(arg)
_, taint = t.StepArgRes1(arg)
t.StepArgArg(arg, arg1)
t.StepArgArgIgnored(arg, arg1)
t.StepArgQual(arg)
taint = t.StepQualRes()
t.StepQualArg(arg)
@@ -67,6 +68,10 @@ func simpleflow() {
t.StepArgArg(src, taint3)
b.Sink1(taint3) // $ hasValueFlow="taint3"
var taint3ignored interface{}
t.StepArgArgIgnored(src, taint3ignored)
b.Sink1(taint3ignored)
var taint4 test.T
taint4.StepArgQual(src)
b.Sink1(taint4) // $ hasValueFlow="taint4"

View File

@@ -8,6 +8,8 @@ func (t *T) StepArgRes1(arg interface{}) (interface{}, interface{}) { return nil
func (t *T) StepArgArg(a1 interface{}, a2 interface{}) {}
func (t *T) StepArgArgIgnored(a1 interface{}, a2 interface{}) {}
func (t *T) StepArgQual(arg interface{}) {}
func (t *T) StepQualRes() interface{} { return nil }

View File

@@ -0,0 +1,2 @@
invalidModelRow
testFailures

View File

@@ -1,3 +1,5 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineFlowTest
import DefaultFlowTest

View File

@@ -0,0 +1,2 @@
invalidModelRow
testFailures

View File

@@ -1,4 +1,6 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineFlowTest
predicate isBad(DataFlow::Node g, Expr e, boolean branch) {

View File

@@ -1,3 +1,4 @@
invalidModelRow
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 | |

View File

@@ -1,4 +1,6 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineFlowTest
module Flow = TaintTracking::Global<DefaultFlowConfig>;

View File

@@ -0,0 +1,2 @@
invalidModelRow
testFailures

View File

@@ -1,3 +1,5 @@
import go
import semmle.go.dataflow.ExternalFlow
import ModelValidation
import TestUtilities.InlineFlowTest
import TaintFlowTest<DefaultFlowConfig>

View File

@@ -0,0 +1,2 @@
invalidModelRow
testFailures

Some files were not shown because too many files have changed in this diff Show More