From f2947c20762266e02ba2f49f910d7476a109c54d Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Tue, 10 Nov 2026 14:19:03 +0000 Subject: [PATCH 1/2] Go: convert data extensiosn to JSON --- go/ql/lib/ext/archive.tar.model.json | 17 ++ go/ql/lib/ext/archive.tar.model.yml | 10 -- go/ql/lib/ext/archive.zip.model.json | 18 ++ go/ql/lib/ext/archive.zip.model.yml | 11 -- go/ql/lib/ext/bufio.model.json | 29 +++ go/ql/lib/ext/bufio.model.yml | 22 --- go/ql/lib/ext/builtin.model.json | 21 +++ go/ql/lib/ext/builtin.model.yml | 14 -- go/ql/lib/ext/bytes.model.json | 57 ++++++ go/ql/lib/ext/bytes.model.yml | 50 ------ .../lib/ext/clevergo.tech.clevergo.model.json | 23 +++ .../lib/ext/clevergo.tech.clevergo.model.yml | 12 -- .../cloud.google.com.go.bigquery.model.json | 13 ++ .../cloud.google.com.go.bigquery.model.yml | 6 - go/ql/lib/ext/compress.bzip2.model.json | 13 ++ go/ql/lib/ext/compress.bzip2.model.yml | 6 - go/ql/lib/ext/compress.flate.model.json | 16 ++ go/ql/lib/ext/compress.flate.model.yml | 9 - go/ql/lib/ext/compress.gzip.model.json | 15 ++ go/ql/lib/ext/compress.gzip.model.yml | 8 - go/ql/lib/ext/compress.lzw.model.json | 13 ++ go/ql/lib/ext/compress.lzw.model.yml | 6 - go/ql/lib/ext/compress.zlib.model.json | 16 ++ go/ql/lib/ext/compress.zlib.model.yml | 9 - go/ql/lib/ext/container.heap.model.json | 17 ++ go/ql/lib/ext/container.heap.model.yml | 10 -- go/ql/lib/ext/container.list.model.json | 32 ++++ go/ql/lib/ext/container.list.model.yml | 25 --- go/ql/lib/ext/container.ring.model.json | 17 ++ go/ql/lib/ext/container.ring.model.yml | 10 -- go/ql/lib/ext/context.model.json | 17 ++ go/ql/lib/ext/context.model.yml | 10 -- go/ql/lib/ext/crypto.cipher.model.json | 15 ++ go/ql/lib/ext/crypto.cipher.model.yml | 8 - go/ql/lib/ext/crypto.model.json | 13 ++ go/ql/lib/ext/crypto.model.yml | 6 - go/ql/lib/ext/crypto.rsa.model.json | 14 ++ go/ql/lib/ext/crypto.rsa.model.yml | 7 - go/ql/lib/ext/crypto.tls.model.json | 15 ++ go/ql/lib/ext/crypto.tls.model.yml | 8 - go/ql/lib/ext/crypto.x509.model.json | 13 ++ go/ql/lib/ext/crypto.x509.model.yml | 6 - go/ql/lib/ext/database.sql.driver.model.json | 44 +++++ go/ql/lib/ext/database.sql.driver.model.yml | 29 --- go/ql/lib/ext/database.sql.model.json | 74 ++++++++ go/ql/lib/ext/database.sql.model.yml | 59 ------- go/ql/lib/ext/empty.model.json | 55 ++++++ go/ql/lib/ext/empty.model.yml | 31 ---- go/ql/lib/ext/encoding.ascii85.model.json | 14 ++ go/ql/lib/ext/encoding.ascii85.model.yml | 7 - go/ql/lib/ext/encoding.asn1.model.json | 20 +++ go/ql/lib/ext/encoding.asn1.model.yml | 13 -- go/ql/lib/ext/encoding.base32.model.json | 15 ++ go/ql/lib/ext/encoding.base32.model.yml | 8 - go/ql/lib/ext/encoding.base64.model.json | 15 ++ go/ql/lib/ext/encoding.base64.model.yml | 8 - go/ql/lib/ext/encoding.binary.model.json | 14 ++ go/ql/lib/ext/encoding.binary.model.yml | 7 - go/ql/lib/ext/encoding.csv.model.json | 17 ++ go/ql/lib/ext/encoding.csv.model.yml | 10 -- go/ql/lib/ext/encoding.gob.model.json | 19 ++ go/ql/lib/ext/encoding.gob.model.yml | 12 -- go/ql/lib/ext/encoding.hex.model.json | 15 ++ go/ql/lib/ext/encoding.hex.model.yml | 8 - .../lib/ext/encoding.json.jsontext.model.json | 43 +++++ .../lib/ext/encoding.json.jsontext.model.yml | 36 ---- go/ql/lib/ext/encoding.json.model.json | 26 +++ go/ql/lib/ext/encoding.json.model.yml | 19 -- go/ql/lib/ext/encoding.model.json | 20 +++ go/ql/lib/ext/encoding.model.yml | 13 -- go/ql/lib/ext/encoding.pem.model.json | 15 ++ go/ql/lib/ext/encoding.pem.model.yml | 8 - go/ql/lib/ext/encoding.xml.model.json | 35 ++++ go/ql/lib/ext/encoding.xml.model.yml | 28 --- go/ql/lib/ext/errors.model.json | 16 ++ go/ql/lib/ext/errors.model.yml | 9 - go/ql/lib/ext/expvar.model.json | 18 ++ go/ql/lib/ext/expvar.model.yml | 11 -- go/ql/lib/ext/fmt.model.json | 39 ++++ go/ql/lib/ext/fmt.model.yml | 28 --- .../github.com.antchfx.htmlquery.model.json | 16 ++ .../github.com.antchfx.htmlquery.model.yml | 9 - .../github.com.antchfx.jsonquery.model.json | 16 ++ .../github.com.antchfx.jsonquery.model.yml | 9 - .../github.com.antchfx.xmlquery.model.json | 20 +++ .../ext/github.com.antchfx.xmlquery.model.yml | 13 -- .../ext/github.com.antchfx.xpath.model.json | 16 ++ .../ext/github.com.antchfx.xpath.model.yml | 9 - .../github.com.appleboy.gin-jwt.model.json | 13 ++ .../ext/github.com.appleboy.gin-jwt.model.yml | 6 - ...thub.com.beego.beego.client.orm.model.json | 74 ++++++++ ...ithub.com.beego.beego.client.orm.model.yml | 60 ------- ...ithub.com.beego.beego.core.logs.model.json | 45 +++++ ...github.com.beego.beego.core.logs.model.yml | 34 ---- ...thub.com.beego.beego.core.utils.model.json | 45 +++++ ...ithub.com.beego.beego.core.utils.model.yml | 30 ---- ....beego.beego.server.web.context.model.json | 59 +++++++ ...m.beego.beego.server.web.context.model.yml | 40 ----- ...thub.com.beego.beego.server.web.model.json | 80 +++++++++ ...ithub.com.beego.beego.server.web.model.yml | 57 ------ .../ext/github.com.caarlos0.env.model.json | 27 +++ .../lib/ext/github.com.caarlos0.env.model.yml | 16 -- ...ithub.com.christrenkamp.goxpath.model.json | 15 ++ ...github.com.christrenkamp.goxpath.model.yml | 8 - .../ext/github.com.coder.websocket.model.json | 24 +++ .../ext/github.com.coder.websocket.model.yml | 13 -- .../github.com.codeskyblue.go-sh.model.json | 16 ++ .../github.com.codeskyblue.go-sh.model.yml | 9 - .../ext/github.com.couchbase.gocb.model.json | 120 +++++++++++++ .../ext/github.com.couchbase.gocb.model.yml | 101 ----------- .../ext/github.com.cristalhq.jwt.model.json | 13 ++ .../ext/github.com.cristalhq.jwt.model.yml | 6 - ...github.com.davecgh.go-spew.spew.model.json | 21 +++ .../github.com.davecgh.go-spew.spew.model.yml | 14 -- .../github.com.dgrijalva.jwt-go.model.json | 32 ++++ .../ext/github.com.dgrijalva.jwt-go.model.yml | 21 --- .../ext/github.com.elazarl.goproxy.model.json | 34 ++++ .../ext/github.com.elazarl.goproxy.model.yml | 20 --- .../github.com.emicklei.go-restful.model.json | 19 ++ .../github.com.emicklei.go-restful.model.yml | 12 -- .../github.com.evanphx.json-patch.model.json | 24 +++ .../github.com.evanphx.json-patch.model.yml | 17 -- ...github.com.form3tech-oss.jwt-go.model.json | 14 ++ .../github.com.form3tech-oss.jwt-go.model.yml | 7 - .../ext/github.com.gin-gonic.gin.model.json | 79 +++++++++ .../ext/github.com.gin-gonic.gin.model.yml | 64 ------- .../lib/ext/github.com.go-chi.chi.model.json | 15 ++ go/ql/lib/ext/github.com.go-chi.chi.model.yml | 8 - .../ext/github.com.go-chi.jwtauth.model.json | 13 ++ .../ext/github.com.go-chi.jwtauth.model.yml | 6 - .../github.com.go-jose.go-jose.jwt.model.json | 37 ++++ .../github.com.go-jose.go-jose.jwt.model.yml | 22 --- .../ext/github.com.go-jose.go-jose.model.json | 26 +++ .../ext/github.com.go-jose.go-jose.model.yml | 15 -- .../github.com.go-kit.kit.auth.jwt.model.json | 13 ++ .../github.com.go-kit.kit.auth.jwt.model.yml | 6 - .../ext/github.com.go-pg.pg.orm.model.json | 18 ++ .../lib/ext/github.com.go-pg.pg.orm.model.yml | 11 -- .../github.com.go-xmlpath.xmlpath.model.json | 29 +++ .../github.com.go-xmlpath.xmlpath.model.yml | 18 -- .../ext/github.com.gobuffalo.envy.model.json | 19 ++ .../ext/github.com.gobuffalo.envy.model.yml | 12 -- go/ql/lib/ext/github.com.gobwas.ws.model.json | 14 ++ go/ql/lib/ext/github.com.gobwas.ws.model.yml | 7 - .../ext/github.com.gofiber.fiber.model.json | 19 ++ .../ext/github.com.gofiber.fiber.model.yml | 12 -- .../lib/ext/github.com.gogf.gf-jwt.model.json | 13 ++ .../lib/ext/github.com.gogf.gf-jwt.model.yml | 6 - ...github.com.gogf.gf.database.gdb.model.json | 141 +++++++++++++++ .../github.com.gogf.gf.database.gdb.model.yml | 130 -------------- .../ext/github.com.golang-jwt.jwt.model.json | 34 ++++ .../ext/github.com.golang-jwt.jwt.model.yml | 23 --- .../lib/ext/github.com.golang.glog.model.json | 113 ++++++++++++ .../lib/ext/github.com.golang.glog.model.yml | 102 ----------- ...ithub.com.golang.protobuf.proto.model.json | 16 ++ ...github.com.golang.protobuf.proto.model.yml | 9 - .../lib/ext/github.com.gorilla.mux.model.json | 13 ++ .../lib/ext/github.com.gorilla.mux.model.yml | 6 - .../github.com.gorilla.websocket.model.json | 15 ++ .../github.com.gorilla.websocket.model.yml | 8 - ...ithub.com.hashicorp.go-envparse.model.json | 13 ++ ...github.com.hashicorp.go-envparse.model.yml | 6 - .../ext/github.com.jmoiron.sqlx.model.json | 100 +++++++++++ .../lib/ext/github.com.jmoiron.sqlx.model.yml | 85 --------- .../ext/github.com.joho.godotenv.model.json | 16 ++ .../ext/github.com.joho.godotenv.model.yml | 9 - .../github.com.json-iterator.go.model.json | 16 ++ .../ext/github.com.json-iterator.go.model.yml | 9 - ...github.com.kataras.iris.context.model.json | 28 +++ .../github.com.kataras.iris.context.model.yml | 17 -- ...com.kataras.iris.middleware.jwt.model.json | 14 ++ ....com.kataras.iris.middleware.jwt.model.yml | 7 - .../lib/ext/github.com.kataras.jwt.model.json | 17 ++ .../lib/ext/github.com.kataras.jwt.model.yml | 10 -- ...b.com.kelseyhightower.envconfig.model.json | 18 ++ ...ub.com.kelseyhightower.envconfig.model.yml | 11 -- .../ext/github.com.labstack.echo.model.json | 47 +++++ .../ext/github.com.labstack.echo.model.yml | 33 ---- .../github.com.lestrrat-go.jwx.jwk.model.json | 13 ++ .../github.com.lestrrat-go.jwx.jwk.model.yml | 6 - .../ext/github.com.lestrrat-go.jwx.model.json | 13 ++ .../ext/github.com.lestrrat-go.jwx.model.yml | 6 - ....com.lestrrat-go.libxml2.parser.model.json | 15 ++ ...b.com.lestrrat-go.libxml2.parser.model.yml | 8 - .../github.com.lestrrat.go-jwx.jwk.model.json | 13 ++ .../github.com.lestrrat.go-jwx.jwk.model.yml | 6 - ...github.com.masterminds.squirrel.model.json | 94 ++++++++++ .../github.com.masterminds.squirrel.model.yml | 84 --------- ...github.com.moovweb.gokogiri.xml.model.json | 26 +++ .../github.com.moovweb.gokogiri.xml.model.yml | 15 -- ...thub.com.moovweb.gokogiri.xpath.model.json | 23 +++ ...ithub.com.moovweb.gokogiri.xpath.model.yml | 12 -- ...github.com.ory.fosite.token.jwt.model.json | 14 ++ .../github.com.ory.fosite.token.jwt.model.yml | 7 - .../lib/ext/github.com.revel.revel.model.json | 81 +++++++++ .../lib/ext/github.com.revel.revel.model.yml | 58 ------ .../ext/github.com.rqlite.gorqlite.model.json | 73 ++++++++ .../ext/github.com.rqlite.gorqlite.model.yml | 54 ------ ...com.santhosh-tekuri.xpathparser.model.json | 14 ++ ....com.santhosh-tekuri.xpathparser.model.yml | 7 - ...ndgrid.sendgrid-go.helpers.mail.model.json | 13 ++ ...endgrid.sendgrid-go.helpers.mail.model.yml | 6 - .../ext/github.com.sirupsen.logrus.model.json | 167 ++++++++++++++++++ .../ext/github.com.sirupsen.logrus.model.yml | 159 ----------------- .../lib/ext/github.com.spf13.afero.model.json | 46 +++++ .../lib/ext/github.com.spf13.afero.model.yml | 39 ---- .../lib/ext/github.com.uptrace.bun.model.json | 102 +++++++++++ .../lib/ext/github.com.uptrace.bun.model.yml | 91 ---------- .../github.com.valyala.fasthttp.model.json | 121 +++++++++++++ .../ext/github.com.valyala.fasthttp.model.yml | 106 ----------- ....mongodb.org.mongo-driver.mongo.model.json | 58 ++++++ ...o.mongodb.org.mongo-driver.mongo.model.yml | 43 ----- go/ql/lib/ext/go.uber.org.zap.model.json | 64 +++++++ go/ql/lib/ext/go.uber.org.zap.model.yml | 53 ------ .../ext/golang.org.x.crypto.ssh.model.json | 16 ++ .../lib/ext/golang.org.x.crypto.ssh.model.yml | 9 - .../ext/golang.org.x.net.context.model.json | 17 ++ .../ext/golang.org.x.net.context.model.yml | 10 -- .../lib/ext/golang.org.x.net.html.model.json | 28 +++ go/ql/lib/ext/golang.org.x.net.html.model.yml | 21 --- .../ext/golang.org.x.net.websocket.model.json | 14 ++ .../ext/golang.org.x.net.websocket.model.yml | 7 - ...protobuf.internal.encoding.text.model.json | 13 ++ ....protobuf.internal.encoding.text.model.yml | 6 - ...lang.org.protobuf.internal.impl.model.json | 14 ++ ...olang.org.protobuf.internal.impl.model.yml | 7 - ...oogle.golang.org.protobuf.proto.model.json | 20 +++ ...google.golang.org.protobuf.proto.model.yml | 13 -- ...g.protobuf.reflect.protoreflect.model.json | 13 ++ ...rg.protobuf.reflect.protoreflect.model.yml | 6 - go/ql/lib/ext/gopkg.in.macaron.model.json | 42 +++++ go/ql/lib/ext/gopkg.in.macaron.model.yml | 27 --- go/ql/lib/ext/gopkg.in.yaml.model.json | 21 +++ go/ql/lib/ext/gopkg.in.yaml.model.yml | 14 -- go/ql/lib/ext/gorm.io.gorm.model.json | 68 +++++++ go/ql/lib/ext/gorm.io.gorm.model.yml | 49 ----- go/ql/lib/ext/html.model.json | 14 ++ go/ql/lib/ext/html.model.yml | 7 - go/ql/lib/ext/html.template.model.json | 18 ++ go/ql/lib/ext/html.template.model.yml | 11 -- go/ql/lib/ext/io.fs.model.json | 36 ++++ go/ql/lib/ext/io.fs.model.yml | 25 --- go/ql/lib/ext/io.ioutil.model.json | 36 ++++ go/ql/lib/ext/io.ioutil.model.yml | 21 --- go/ql/lib/ext/io.model.json | 31 ++++ go/ql/lib/ext/io.model.yml | 24 --- go/ql/lib/ext/k8s.io.api.core.model.json | 22 +++ go/ql/lib/ext/k8s.io.api.core.model.yml | 15 -- ...k8s.io.apimachinery.pkg.runtime.model.json | 59 +++++++ .../k8s.io.apimachinery.pkg.runtime.model.yml | 52 ------ go/ql/lib/ext/log.model.json | 43 +++++ go/ql/lib/ext/log.model.yml | 32 ---- go/ql/lib/ext/log.slog.model.json | 64 +++++++ go/ql/lib/ext/log.slog.model.yml | 53 ------ go/ql/lib/ext/maps.model.json | 21 +++ go/ql/lib/ext/maps.model.yml | 14 -- go/ql/lib/ext/math.big.model.json | 13 ++ go/ql/lib/ext/math.big.model.yml | 6 - go/ql/lib/ext/mime.model.json | 17 ++ go/ql/lib/ext/mime.model.yml | 10 -- go/ql/lib/ext/mime.multipart.model.json | 41 +++++ go/ql/lib/ext/mime.multipart.model.yml | 30 ---- go/ql/lib/ext/mime.quotedprintable.model.json | 13 ++ go/ql/lib/ext/mime.quotedprintable.model.yml | 6 - go/ql/lib/ext/net.http.httputil.model.json | 22 +++ go/ql/lib/ext/net.http.httputil.model.yml | 15 -- go/ql/lib/ext/net.http.model.json | 70 ++++++++ go/ql/lib/ext/net.http.model.yml | 55 ------ go/ql/lib/ext/net.mail.model.json | 18 ++ go/ql/lib/ext/net.mail.model.yml | 11 -- go/ql/lib/ext/net.model.json | 32 ++++ go/ql/lib/ext/net.model.yml | 25 --- go/ql/lib/ext/net.textproto.model.json | 31 ++++ go/ql/lib/ext/net.textproto.model.yml | 24 --- go/ql/lib/ext/net.url.model.json | 37 ++++ go/ql/lib/ext/net.url.model.yml | 30 ---- go/ql/lib/ext/os.exec.model.json | 14 ++ go/ql/lib/ext/os.exec.model.yml | 7 - go/ql/lib/ext/os.model.json | 75 ++++++++ go/ql/lib/ext/os.model.yml | 60 ------- go/ql/lib/ext/path.filepath.model.json | 25 +++ go/ql/lib/ext/path.filepath.model.yml | 18 -- go/ql/lib/ext/path.model.json | 17 ++ go/ql/lib/ext/path.model.yml | 10 -- go/ql/lib/ext/reflect.model.json | 49 +++++ go/ql/lib/ext/reflect.model.yml | 42 ----- go/ql/lib/ext/regexp.model.json | 50 ++++++ go/ql/lib/ext/regexp.model.yml | 39 ---- go/ql/lib/ext/slices.model.json | 38 ++++ go/ql/lib/ext/slices.model.yml | 31 ---- go/ql/lib/ext/sort.model.json | 13 ++ go/ql/lib/ext/sort.model.yml | 6 - go/ql/lib/ext/strconv.model.json | 21 +++ go/ql/lib/ext/strconv.model.yml | 14 -- go/ql/lib/ext/strings.model.json | 59 +++++++ go/ql/lib/ext/strings.model.yml | 52 ------ go/ql/lib/ext/sync.atomic.model.json | 36 ++++ go/ql/lib/ext/sync.atomic.model.yml | 29 --- go/ql/lib/ext/sync.model.json | 22 +++ go/ql/lib/ext/sync.model.yml | 15 -- go/ql/lib/ext/syscall.model.json | 43 +++++ go/ql/lib/ext/syscall.model.yml | 28 --- go/ql/lib/ext/text.scanner.model.json | 15 ++ go/ql/lib/ext/text.scanner.model.yml | 8 - go/ql/lib/ext/text.tabwriter.model.json | 13 ++ go/ql/lib/ext/text.tabwriter.model.yml | 6 - go/ql/lib/ext/text.template.model.json | 18 ++ go/ql/lib/ext/text.template.model.yml | 11 -- go/ql/lib/ext/weak.model.json | 14 ++ go/ql/lib/ext/weak.model.yml | 7 - go/ql/lib/ext/xorm.io.xorm.model.json | 60 +++++++ go/ql/lib/ext/xorm.io.xorm.model.yml | 49 ----- go/ql/lib/qlpack.yml | 1 + 313 files changed, 4994 insertions(+), 3587 deletions(-) create mode 100644 go/ql/lib/ext/archive.tar.model.json delete mode 100644 go/ql/lib/ext/archive.tar.model.yml create mode 100644 go/ql/lib/ext/archive.zip.model.json delete mode 100644 go/ql/lib/ext/archive.zip.model.yml create mode 100644 go/ql/lib/ext/bufio.model.json delete mode 100644 go/ql/lib/ext/bufio.model.yml create mode 100644 go/ql/lib/ext/builtin.model.json delete mode 100644 go/ql/lib/ext/builtin.model.yml create mode 100644 go/ql/lib/ext/bytes.model.json delete mode 100644 go/ql/lib/ext/bytes.model.yml create mode 100644 go/ql/lib/ext/clevergo.tech.clevergo.model.json delete mode 100644 go/ql/lib/ext/clevergo.tech.clevergo.model.yml create mode 100644 go/ql/lib/ext/cloud.google.com.go.bigquery.model.json delete mode 100644 go/ql/lib/ext/cloud.google.com.go.bigquery.model.yml create mode 100644 go/ql/lib/ext/compress.bzip2.model.json delete mode 100644 go/ql/lib/ext/compress.bzip2.model.yml create mode 100644 go/ql/lib/ext/compress.flate.model.json delete mode 100644 go/ql/lib/ext/compress.flate.model.yml create mode 100644 go/ql/lib/ext/compress.gzip.model.json delete mode 100644 go/ql/lib/ext/compress.gzip.model.yml create mode 100644 go/ql/lib/ext/compress.lzw.model.json delete mode 100644 go/ql/lib/ext/compress.lzw.model.yml create mode 100644 go/ql/lib/ext/compress.zlib.model.json delete mode 100644 go/ql/lib/ext/compress.zlib.model.yml create mode 100644 go/ql/lib/ext/container.heap.model.json delete mode 100644 go/ql/lib/ext/container.heap.model.yml create mode 100644 go/ql/lib/ext/container.list.model.json delete mode 100644 go/ql/lib/ext/container.list.model.yml create mode 100644 go/ql/lib/ext/container.ring.model.json delete mode 100644 go/ql/lib/ext/container.ring.model.yml create mode 100644 go/ql/lib/ext/context.model.json delete mode 100644 go/ql/lib/ext/context.model.yml create mode 100644 go/ql/lib/ext/crypto.cipher.model.json delete mode 100644 go/ql/lib/ext/crypto.cipher.model.yml create mode 100644 go/ql/lib/ext/crypto.model.json delete mode 100644 go/ql/lib/ext/crypto.model.yml create mode 100644 go/ql/lib/ext/crypto.rsa.model.json delete mode 100644 go/ql/lib/ext/crypto.rsa.model.yml create mode 100644 go/ql/lib/ext/crypto.tls.model.json delete mode 100644 go/ql/lib/ext/crypto.tls.model.yml create mode 100644 go/ql/lib/ext/crypto.x509.model.json delete mode 100644 go/ql/lib/ext/crypto.x509.model.yml create mode 100644 go/ql/lib/ext/database.sql.driver.model.json delete mode 100644 go/ql/lib/ext/database.sql.driver.model.yml create mode 100644 go/ql/lib/ext/database.sql.model.json delete mode 100644 go/ql/lib/ext/database.sql.model.yml create mode 100644 go/ql/lib/ext/empty.model.json delete mode 100644 go/ql/lib/ext/empty.model.yml create mode 100644 go/ql/lib/ext/encoding.ascii85.model.json delete mode 100644 go/ql/lib/ext/encoding.ascii85.model.yml create mode 100644 go/ql/lib/ext/encoding.asn1.model.json delete mode 100644 go/ql/lib/ext/encoding.asn1.model.yml create mode 100644 go/ql/lib/ext/encoding.base32.model.json delete mode 100644 go/ql/lib/ext/encoding.base32.model.yml create mode 100644 go/ql/lib/ext/encoding.base64.model.json delete mode 100644 go/ql/lib/ext/encoding.base64.model.yml create mode 100644 go/ql/lib/ext/encoding.binary.model.json delete mode 100644 go/ql/lib/ext/encoding.binary.model.yml create mode 100644 go/ql/lib/ext/encoding.csv.model.json delete mode 100644 go/ql/lib/ext/encoding.csv.model.yml create mode 100644 go/ql/lib/ext/encoding.gob.model.json delete mode 100644 go/ql/lib/ext/encoding.gob.model.yml create mode 100644 go/ql/lib/ext/encoding.hex.model.json delete mode 100644 go/ql/lib/ext/encoding.hex.model.yml create mode 100644 go/ql/lib/ext/encoding.json.jsontext.model.json delete mode 100644 go/ql/lib/ext/encoding.json.jsontext.model.yml create mode 100644 go/ql/lib/ext/encoding.json.model.json delete mode 100644 go/ql/lib/ext/encoding.json.model.yml create mode 100644 go/ql/lib/ext/encoding.model.json delete mode 100644 go/ql/lib/ext/encoding.model.yml create mode 100644 go/ql/lib/ext/encoding.pem.model.json delete mode 100644 go/ql/lib/ext/encoding.pem.model.yml create mode 100644 go/ql/lib/ext/encoding.xml.model.json delete mode 100644 go/ql/lib/ext/encoding.xml.model.yml create mode 100644 go/ql/lib/ext/errors.model.json delete mode 100644 go/ql/lib/ext/errors.model.yml create mode 100644 go/ql/lib/ext/expvar.model.json delete mode 100644 go/ql/lib/ext/expvar.model.yml create mode 100644 go/ql/lib/ext/fmt.model.json delete mode 100644 go/ql/lib/ext/fmt.model.yml create mode 100644 go/ql/lib/ext/github.com.antchfx.htmlquery.model.json delete mode 100644 go/ql/lib/ext/github.com.antchfx.htmlquery.model.yml create mode 100644 go/ql/lib/ext/github.com.antchfx.jsonquery.model.json delete mode 100644 go/ql/lib/ext/github.com.antchfx.jsonquery.model.yml create mode 100644 go/ql/lib/ext/github.com.antchfx.xmlquery.model.json delete mode 100644 go/ql/lib/ext/github.com.antchfx.xmlquery.model.yml create mode 100644 go/ql/lib/ext/github.com.antchfx.xpath.model.json delete mode 100644 go/ql/lib/ext/github.com.antchfx.xpath.model.yml create mode 100644 go/ql/lib/ext/github.com.appleboy.gin-jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.appleboy.gin-jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.beego.beego.client.orm.model.json delete mode 100644 go/ql/lib/ext/github.com.beego.beego.client.orm.model.yml create mode 100644 go/ql/lib/ext/github.com.beego.beego.core.logs.model.json delete mode 100644 go/ql/lib/ext/github.com.beego.beego.core.logs.model.yml create mode 100644 go/ql/lib/ext/github.com.beego.beego.core.utils.model.json delete mode 100644 go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml create mode 100644 go/ql/lib/ext/github.com.beego.beego.server.web.context.model.json delete mode 100644 go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml create mode 100644 go/ql/lib/ext/github.com.beego.beego.server.web.model.json delete mode 100644 go/ql/lib/ext/github.com.beego.beego.server.web.model.yml create mode 100644 go/ql/lib/ext/github.com.caarlos0.env.model.json delete mode 100644 go/ql/lib/ext/github.com.caarlos0.env.model.yml create mode 100644 go/ql/lib/ext/github.com.christrenkamp.goxpath.model.json delete mode 100644 go/ql/lib/ext/github.com.christrenkamp.goxpath.model.yml create mode 100644 go/ql/lib/ext/github.com.coder.websocket.model.json delete mode 100644 go/ql/lib/ext/github.com.coder.websocket.model.yml create mode 100644 go/ql/lib/ext/github.com.codeskyblue.go-sh.model.json delete mode 100644 go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml create mode 100644 go/ql/lib/ext/github.com.couchbase.gocb.model.json delete mode 100644 go/ql/lib/ext/github.com.couchbase.gocb.model.yml create mode 100644 go/ql/lib/ext/github.com.cristalhq.jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.cristalhq.jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.json delete mode 100644 go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.yml create mode 100644 go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.json delete mode 100644 go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.yml create mode 100644 go/ql/lib/ext/github.com.elazarl.goproxy.model.json delete mode 100644 go/ql/lib/ext/github.com.elazarl.goproxy.model.yml create mode 100644 go/ql/lib/ext/github.com.emicklei.go-restful.model.json delete mode 100644 go/ql/lib/ext/github.com.emicklei.go-restful.model.yml create mode 100644 go/ql/lib/ext/github.com.evanphx.json-patch.model.json delete mode 100644 go/ql/lib/ext/github.com.evanphx.json-patch.model.yml create mode 100644 go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.json delete mode 100644 go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.yml create mode 100644 go/ql/lib/ext/github.com.gin-gonic.gin.model.json delete mode 100644 go/ql/lib/ext/github.com.gin-gonic.gin.model.yml create mode 100644 go/ql/lib/ext/github.com.go-chi.chi.model.json delete mode 100644 go/ql/lib/ext/github.com.go-chi.chi.model.yml create mode 100644 go/ql/lib/ext/github.com.go-chi.jwtauth.model.json delete mode 100644 go/ql/lib/ext/github.com.go-chi.jwtauth.model.yml create mode 100644 go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.go-jose.go-jose.model.json delete mode 100644 go/ql/lib/ext/github.com.go-jose.go-jose.model.yml create mode 100644 go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.go-pg.pg.orm.model.json delete mode 100644 go/ql/lib/ext/github.com.go-pg.pg.orm.model.yml create mode 100644 go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.json delete mode 100644 go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.yml create mode 100644 go/ql/lib/ext/github.com.gobuffalo.envy.model.json delete mode 100644 go/ql/lib/ext/github.com.gobuffalo.envy.model.yml create mode 100644 go/ql/lib/ext/github.com.gobwas.ws.model.json delete mode 100644 go/ql/lib/ext/github.com.gobwas.ws.model.yml create mode 100644 go/ql/lib/ext/github.com.gofiber.fiber.model.json delete mode 100644 go/ql/lib/ext/github.com.gofiber.fiber.model.yml create mode 100644 go/ql/lib/ext/github.com.gogf.gf-jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.gogf.gf-jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.json delete mode 100644 go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.yml create mode 100644 go/ql/lib/ext/github.com.golang-jwt.jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.golang-jwt.jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.golang.glog.model.json delete mode 100644 go/ql/lib/ext/github.com.golang.glog.model.yml create mode 100644 go/ql/lib/ext/github.com.golang.protobuf.proto.model.json delete mode 100644 go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml create mode 100644 go/ql/lib/ext/github.com.gorilla.mux.model.json delete mode 100644 go/ql/lib/ext/github.com.gorilla.mux.model.yml create mode 100644 go/ql/lib/ext/github.com.gorilla.websocket.model.json delete mode 100644 go/ql/lib/ext/github.com.gorilla.websocket.model.yml create mode 100644 go/ql/lib/ext/github.com.hashicorp.go-envparse.model.json delete mode 100644 go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml create mode 100644 go/ql/lib/ext/github.com.jmoiron.sqlx.model.json delete mode 100644 go/ql/lib/ext/github.com.jmoiron.sqlx.model.yml create mode 100644 go/ql/lib/ext/github.com.joho.godotenv.model.json delete mode 100644 go/ql/lib/ext/github.com.joho.godotenv.model.yml create mode 100644 go/ql/lib/ext/github.com.json-iterator.go.model.json delete mode 100644 go/ql/lib/ext/github.com.json-iterator.go.model.yml create mode 100644 go/ql/lib/ext/github.com.kataras.iris.context.model.json delete mode 100644 go/ql/lib/ext/github.com.kataras.iris.context.model.yml create mode 100644 go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.kataras.jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.kataras.jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.json delete mode 100644 go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml create mode 100644 go/ql/lib/ext/github.com.labstack.echo.model.json delete mode 100644 go/ql/lib/ext/github.com.labstack.echo.model.yml create mode 100644 go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.json delete mode 100644 go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.yml create mode 100644 go/ql/lib/ext/github.com.lestrrat-go.jwx.model.json delete mode 100644 go/ql/lib/ext/github.com.lestrrat-go.jwx.model.yml create mode 100644 go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.json delete mode 100644 go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.yml create mode 100644 go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.json delete mode 100644 go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.yml create mode 100644 go/ql/lib/ext/github.com.masterminds.squirrel.model.json delete mode 100644 go/ql/lib/ext/github.com.masterminds.squirrel.model.yml create mode 100644 go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.json delete mode 100644 go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.yml create mode 100644 go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.json delete mode 100644 go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.yml create mode 100644 go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.json delete mode 100644 go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.yml create mode 100644 go/ql/lib/ext/github.com.revel.revel.model.json delete mode 100644 go/ql/lib/ext/github.com.revel.revel.model.yml create mode 100644 go/ql/lib/ext/github.com.rqlite.gorqlite.model.json delete mode 100644 go/ql/lib/ext/github.com.rqlite.gorqlite.model.yml create mode 100644 go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.json delete mode 100644 go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.yml create mode 100644 go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.json delete mode 100644 go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml create mode 100644 go/ql/lib/ext/github.com.sirupsen.logrus.model.json delete mode 100644 go/ql/lib/ext/github.com.sirupsen.logrus.model.yml create mode 100644 go/ql/lib/ext/github.com.spf13.afero.model.json delete mode 100644 go/ql/lib/ext/github.com.spf13.afero.model.yml create mode 100644 go/ql/lib/ext/github.com.uptrace.bun.model.json delete mode 100644 go/ql/lib/ext/github.com.uptrace.bun.model.yml create mode 100644 go/ql/lib/ext/github.com.valyala.fasthttp.model.json delete mode 100644 go/ql/lib/ext/github.com.valyala.fasthttp.model.yml create mode 100644 go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.json delete mode 100644 go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.yml create mode 100644 go/ql/lib/ext/go.uber.org.zap.model.json delete mode 100644 go/ql/lib/ext/go.uber.org.zap.model.yml create mode 100644 go/ql/lib/ext/golang.org.x.crypto.ssh.model.json delete mode 100644 go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml create mode 100644 go/ql/lib/ext/golang.org.x.net.context.model.json delete mode 100644 go/ql/lib/ext/golang.org.x.net.context.model.yml create mode 100644 go/ql/lib/ext/golang.org.x.net.html.model.json delete mode 100644 go/ql/lib/ext/golang.org.x.net.html.model.yml create mode 100644 go/ql/lib/ext/golang.org.x.net.websocket.model.json delete mode 100644 go/ql/lib/ext/golang.org.x.net.websocket.model.yml create mode 100644 go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.json delete mode 100644 go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.yml create mode 100644 go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.json delete mode 100644 go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.yml create mode 100644 go/ql/lib/ext/google.golang.org.protobuf.proto.model.json delete mode 100644 go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml create mode 100644 go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.json delete mode 100644 go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.yml create mode 100644 go/ql/lib/ext/gopkg.in.macaron.model.json delete mode 100644 go/ql/lib/ext/gopkg.in.macaron.model.yml create mode 100644 go/ql/lib/ext/gopkg.in.yaml.model.json delete mode 100644 go/ql/lib/ext/gopkg.in.yaml.model.yml create mode 100644 go/ql/lib/ext/gorm.io.gorm.model.json delete mode 100644 go/ql/lib/ext/gorm.io.gorm.model.yml create mode 100644 go/ql/lib/ext/html.model.json delete mode 100644 go/ql/lib/ext/html.model.yml create mode 100644 go/ql/lib/ext/html.template.model.json delete mode 100644 go/ql/lib/ext/html.template.model.yml create mode 100644 go/ql/lib/ext/io.fs.model.json delete mode 100644 go/ql/lib/ext/io.fs.model.yml create mode 100644 go/ql/lib/ext/io.ioutil.model.json delete mode 100644 go/ql/lib/ext/io.ioutil.model.yml create mode 100644 go/ql/lib/ext/io.model.json delete mode 100644 go/ql/lib/ext/io.model.yml create mode 100644 go/ql/lib/ext/k8s.io.api.core.model.json delete mode 100644 go/ql/lib/ext/k8s.io.api.core.model.yml create mode 100644 go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.json delete mode 100644 go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml create mode 100644 go/ql/lib/ext/log.model.json delete mode 100644 go/ql/lib/ext/log.model.yml create mode 100644 go/ql/lib/ext/log.slog.model.json delete mode 100644 go/ql/lib/ext/log.slog.model.yml create mode 100644 go/ql/lib/ext/maps.model.json delete mode 100644 go/ql/lib/ext/maps.model.yml create mode 100644 go/ql/lib/ext/math.big.model.json delete mode 100644 go/ql/lib/ext/math.big.model.yml create mode 100644 go/ql/lib/ext/mime.model.json delete mode 100644 go/ql/lib/ext/mime.model.yml create mode 100644 go/ql/lib/ext/mime.multipart.model.json delete mode 100644 go/ql/lib/ext/mime.multipart.model.yml create mode 100644 go/ql/lib/ext/mime.quotedprintable.model.json delete mode 100644 go/ql/lib/ext/mime.quotedprintable.model.yml create mode 100644 go/ql/lib/ext/net.http.httputil.model.json delete mode 100644 go/ql/lib/ext/net.http.httputil.model.yml create mode 100644 go/ql/lib/ext/net.http.model.json delete mode 100644 go/ql/lib/ext/net.http.model.yml create mode 100644 go/ql/lib/ext/net.mail.model.json delete mode 100644 go/ql/lib/ext/net.mail.model.yml create mode 100644 go/ql/lib/ext/net.model.json delete mode 100644 go/ql/lib/ext/net.model.yml create mode 100644 go/ql/lib/ext/net.textproto.model.json delete mode 100644 go/ql/lib/ext/net.textproto.model.yml create mode 100644 go/ql/lib/ext/net.url.model.json delete mode 100644 go/ql/lib/ext/net.url.model.yml create mode 100644 go/ql/lib/ext/os.exec.model.json delete mode 100644 go/ql/lib/ext/os.exec.model.yml create mode 100644 go/ql/lib/ext/os.model.json delete mode 100644 go/ql/lib/ext/os.model.yml create mode 100644 go/ql/lib/ext/path.filepath.model.json delete mode 100644 go/ql/lib/ext/path.filepath.model.yml create mode 100644 go/ql/lib/ext/path.model.json delete mode 100644 go/ql/lib/ext/path.model.yml create mode 100644 go/ql/lib/ext/reflect.model.json delete mode 100644 go/ql/lib/ext/reflect.model.yml create mode 100644 go/ql/lib/ext/regexp.model.json delete mode 100644 go/ql/lib/ext/regexp.model.yml create mode 100644 go/ql/lib/ext/slices.model.json delete mode 100644 go/ql/lib/ext/slices.model.yml create mode 100644 go/ql/lib/ext/sort.model.json delete mode 100644 go/ql/lib/ext/sort.model.yml create mode 100644 go/ql/lib/ext/strconv.model.json delete mode 100644 go/ql/lib/ext/strconv.model.yml create mode 100644 go/ql/lib/ext/strings.model.json delete mode 100644 go/ql/lib/ext/strings.model.yml create mode 100644 go/ql/lib/ext/sync.atomic.model.json delete mode 100644 go/ql/lib/ext/sync.atomic.model.yml create mode 100644 go/ql/lib/ext/sync.model.json delete mode 100644 go/ql/lib/ext/sync.model.yml create mode 100644 go/ql/lib/ext/syscall.model.json delete mode 100644 go/ql/lib/ext/syscall.model.yml create mode 100644 go/ql/lib/ext/text.scanner.model.json delete mode 100644 go/ql/lib/ext/text.scanner.model.yml create mode 100644 go/ql/lib/ext/text.tabwriter.model.json delete mode 100644 go/ql/lib/ext/text.tabwriter.model.yml create mode 100644 go/ql/lib/ext/text.template.model.json delete mode 100644 go/ql/lib/ext/text.template.model.yml create mode 100644 go/ql/lib/ext/weak.model.json delete mode 100644 go/ql/lib/ext/weak.model.yml create mode 100644 go/ql/lib/ext/xorm.io.xorm.model.json delete mode 100644 go/ql/lib/ext/xorm.io.xorm.model.yml diff --git a/go/ql/lib/ext/archive.tar.model.json b/go/ql/lib/ext/archive.tar.model.json new file mode 100644 index 000000000000..e9953ab95f80 --- /dev/null +++ b/go/ql/lib/ext/archive.tar.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["archive/tar", "", false, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["archive/tar", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["archive/tar", "Header", true, "FileInfo", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["archive/tar", "Reader", true, "Next", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["archive/tar", "Writer", true, "WriteHeader", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/archive.tar.model.yml b/go/ql/lib/ext/archive.tar.model.yml deleted file mode 100644 index f1212e35c022..000000000000 --- a/go/ql/lib/ext/archive.tar.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["archive/tar", "", False, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["archive/tar", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["archive/tar", "Header", True, "FileInfo", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["archive/tar", "Reader", True, "Next", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["archive/tar", "Writer", True, "WriteHeader", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/archive.zip.model.json b/go/ql/lib/ext/archive.zip.model.json new file mode 100644 index 000000000000..e403d9e8d48d --- /dev/null +++ b/go/ql/lib/ext/archive.zip.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["archive/zip", "", false, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["archive/zip", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["archive/zip", "", false, "OpenReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["archive/zip", "File", true, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["archive/zip", "File", true, "OpenRaw", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["archive/zip", "Writer", true, "Copy", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/archive.zip.model.yml b/go/ql/lib/ext/archive.zip.model.yml deleted file mode 100644 index 17e2bb0bd789..000000000000 --- a/go/ql/lib/ext/archive.zip.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["archive/zip", "", False, "FileInfoHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["archive/zip", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["archive/zip", "", False, "OpenReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["archive/zip", "File", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["archive/zip", "File", True, "OpenRaw", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["archive/zip", "Writer", True, "Copy", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/bufio.model.json b/go/ql/lib/ext/bufio.model.json new file mode 100644 index 000000000000..d90cc09263d7 --- /dev/null +++ b/go/ql/lib/ext/bufio.model.json @@ -0,0 +1,29 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["bufio", "", false, "NewReadWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bufio", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bufio", "", false, "NewReaderSize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bufio", "", false, "NewScanner", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bufio", "", false, "ScanBytes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"], + ["bufio", "", false, "ScanLines", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"], + ["bufio", "", false, "ScanRunes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"], + ["bufio", "", false, "ScanWords", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"], + ["bufio", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/bufio.model.yml b/go/ql/lib/ext/bufio.model.yml deleted file mode 100644 index e9dd22e66861..000000000000 --- a/go/ql/lib/ext/bufio.model.yml +++ /dev/null @@ -1,22 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["bufio", "", False, "NewReadWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "NewReaderSize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "NewScanner", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bufio", "", False, "ScanBytes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - - ["bufio", "", False, "ScanLines", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - - ["bufio", "", False, "ScanRunes", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - - ["bufio", "", False, "ScanWords", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"] - - ["bufio", "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"] diff --git a/go/ql/lib/ext/builtin.model.json b/go/ql/lib/ext/builtin.model.json new file mode 100644 index 000000000000..fd73cc492843 --- /dev/null +++ b/go/ql/lib/ext/builtin.model.json @@ -0,0 +1,21 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["", "", false, "append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], // special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... + ["", "", false, "append", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["", "", false, "append", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], // special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... + ["", "", false, "append", "", "", "Argument[1].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["", "", false, "copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], // special case for when arg[0] has core type []byte and second argument has core type bytestring + ["", "", false, "copy", "", "", "Argument[1].ArrayElement", "Argument[0].ArrayElement", "value", "manual"], + ["", "", false, "max", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"], + ["", "", false, "min", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"], + ["", "", false, "new", "", "", "Argument[0]", "ReturnValue.Dereference", "value", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/builtin.model.yml b/go/ql/lib/ext/builtin.model.yml deleted file mode 100644 index 616e6bc23b01..000000000000 --- a/go/ql/lib/ext/builtin.model.yml +++ /dev/null @@ -1,14 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["", "", False, "append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... - - ["", "", False, "append", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["", "", False, "append", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring and is followed by ... - - ["", "", False, "append", "", "", "Argument[1].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["", "", False, "copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] # special case for when arg[0] has core type []byte and second argument has core type bytestring - - ["", "", False, "copy", "", "", "Argument[1].ArrayElement", "Argument[0].ArrayElement", "value", "manual"] - - ["", "", False, "max", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] - - ["", "", False, "min", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] - - ["", "", False, "new", "", "", "Argument[0]", "ReturnValue.Dereference", "value", "manual"] diff --git a/go/ql/lib/ext/bytes.model.json b/go/ql/lib/ext/bytes.model.json new file mode 100644 index 000000000000..9ef5aaf724a2 --- /dev/null +++ b/go/ql/lib/ext/bytes.model.json @@ -0,0 +1,57 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["bytes", "", false, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["bytes", "", false, "CutLast", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["bytes", "", false, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["bytes", "", false, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["bytes", "", false, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "FieldsFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "NewBuffer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "NewBufferString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Runes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "", false, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["bytes", "Buffer", true, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["bytes", "Buffer", true, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["bytes", "Buffer", true, "Peek", "", "", "Argument[receiver]", "ReturnValue[0]", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/bytes.model.yml b/go/ql/lib/ext/bytes.model.yml deleted file mode 100644 index 9f5ad37176a7..000000000000 --- a/go/ql/lib/ext/bytes.model.yml +++ /dev/null @@ -1,50 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["bytes", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["bytes", "", False, "CutLast", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["bytes", "", False, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["bytes", "", False, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["bytes", "", False, "Fields", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "FieldsFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "NewBuffer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "NewBufferString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Runes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "", False, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["bytes", "Buffer", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["bytes", "Buffer", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["bytes", "Buffer", True, "Peek", "", "", "Argument[receiver]", "ReturnValue[0]", "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"] diff --git a/go/ql/lib/ext/clevergo.tech.clevergo.model.json b/go/ql/lib/ext/clevergo.tech.clevergo.model.json new file mode 100644 index 000000000000..ce1a4f6728d3 --- /dev/null +++ b/go/ql/lib/ext/clevergo.tech.clevergo.model.json @@ -0,0 +1,23 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["clever-go", "clevergo.tech/clevergo"], + ["clever-go", "github.com/clevergo/clevergo"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:clever-go", "Context", true, "Redirect", "", "", "Argument[1]", "url-redirection[receiver]", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/clevergo.tech.clevergo.model.yml b/go/ql/lib/ext/clevergo.tech.clevergo.model.yml deleted file mode 100644 index fdf8b082ca9c..000000000000 --- a/go/ql/lib/ext/clevergo.tech.clevergo.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["clever-go", "clevergo.tech/clevergo"] - - ["clever-go", "github.com/clevergo/clevergo"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:clever-go", "Context", True, "Redirect", "", "", "Argument[1]", "url-redirection[receiver]", "manual"] diff --git a/go/ql/lib/ext/cloud.google.com.go.bigquery.model.json b/go/ql/lib/ext/cloud.google.com.go.bigquery.model.json new file mode 100644 index 000000000000..b7fe0b09907d --- /dev/null +++ b/go/ql/lib/ext/cloud.google.com.go.bigquery.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["cloud.google.com/go/bigquery", "Client", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/cloud.google.com.go.bigquery.model.yml b/go/ql/lib/ext/cloud.google.com.go.bigquery.model.yml deleted file mode 100644 index e2d51e9c6ae2..000000000000 --- a/go/ql/lib/ext/cloud.google.com.go.bigquery.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["cloud.google.com/go/bigquery", "Client", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] diff --git a/go/ql/lib/ext/compress.bzip2.model.json b/go/ql/lib/ext/compress.bzip2.model.json new file mode 100644 index 000000000000..e561ca73fd6f --- /dev/null +++ b/go/ql/lib/ext/compress.bzip2.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["compress/bzip2", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/compress.bzip2.model.yml b/go/ql/lib/ext/compress.bzip2.model.yml deleted file mode 100644 index 38719037de18..000000000000 --- a/go/ql/lib/ext/compress.bzip2.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["compress/bzip2", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.flate.model.json b/go/ql/lib/ext/compress.flate.model.json new file mode 100644 index 000000000000..6d4ac5f75e9a --- /dev/null +++ b/go/ql/lib/ext/compress.flate.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["compress/flate", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["compress/flate", "", false, "NewReaderDict", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["compress/flate", "Resetter", true, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["compress/flate", "Writer", true, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/compress.flate.model.yml b/go/ql/lib/ext/compress.flate.model.yml deleted file mode 100644 index 5b36372c8c09..000000000000 --- a/go/ql/lib/ext/compress.flate.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["compress/flate", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["compress/flate", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["compress/flate", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["compress/flate", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.gzip.model.json b/go/ql/lib/ext/compress.gzip.model.json new file mode 100644 index 000000000000..82d66c5d0553 --- /dev/null +++ b/go/ql/lib/ext/compress.gzip.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["compress/gzip", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["compress/gzip", "Reader", true, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["compress/gzip", "Writer", true, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/compress.gzip.model.yml b/go/ql/lib/ext/compress.gzip.model.yml deleted file mode 100644 index d3da545b4483..000000000000 --- a/go/ql/lib/ext/compress.gzip.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["compress/gzip", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["compress/gzip", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["compress/gzip", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.lzw.model.json b/go/ql/lib/ext/compress.lzw.model.json new file mode 100644 index 000000000000..80e348fdc0ca --- /dev/null +++ b/go/ql/lib/ext/compress.lzw.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["compress/lzw", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/compress.lzw.model.yml b/go/ql/lib/ext/compress.lzw.model.yml deleted file mode 100644 index 5db30e14ec36..000000000000 --- a/go/ql/lib/ext/compress.lzw.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["compress/lzw", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/compress.zlib.model.json b/go/ql/lib/ext/compress.zlib.model.json new file mode 100644 index 000000000000..799827e46ba2 --- /dev/null +++ b/go/ql/lib/ext/compress.zlib.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["compress/zlib", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["compress/zlib", "", false, "NewReaderDict", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["compress/zlib", "Resetter", true, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["compress/zlib", "Writer", true, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/compress.zlib.model.yml b/go/ql/lib/ext/compress.zlib.model.yml deleted file mode 100644 index abd162c33923..000000000000 --- a/go/ql/lib/ext/compress.zlib.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["compress/zlib", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["compress/zlib", "", False, "NewReaderDict", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["compress/zlib", "Resetter", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["compress/zlib", "Writer", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/container.heap.model.json b/go/ql/lib/ext/container.heap.model.json new file mode 100644 index 000000000000..f89e1e90773c --- /dev/null +++ b/go/ql/lib/ext/container.heap.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["container/heap", "", false, "Pop", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["container/heap", "", false, "Push", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["container/heap", "", false, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["container/heap", "Interface", true, "Pop", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["container/heap", "Interface", true, "Push", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/container.heap.model.yml b/go/ql/lib/ext/container.heap.model.yml deleted file mode 100644 index 57aabd12ea27..000000000000 --- a/go/ql/lib/ext/container.heap.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["container/heap", "", False, "Pop", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["container/heap", "", False, "Push", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["container/heap", "", False, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["container/heap", "Interface", True, "Pop", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["container/heap", "Interface", True, "Push", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/container.list.model.json b/go/ql/lib/ext/container.list.model.json new file mode 100644 index 000000000000..3fad8d6caff2 --- /dev/null +++ b/go/ql/lib/ext/container.list.model.json @@ -0,0 +1,32 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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[receiver]", "taint", "manual"], + ["container/list", "List", true, "InsertBefore", "", "", "Argument[0]", "ReturnValue", "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[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[receiver]", "taint", "manual"], + ["container/list", "List", true, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/container.list.model.yml b/go/ql/lib/ext/container.list.model.yml deleted file mode 100644 index a02a1a366909..000000000000 --- a/go/ql/lib/ext/container.list.model.yml +++ /dev/null @@ -1,25 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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[receiver]", "taint", "manual"] - - ["container/list", "List", True, "InsertBefore", "", "", "Argument[0]", "ReturnValue", "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[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[receiver]", "taint", "manual"] - - ["container/list", "List", True, "Remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/container.ring.model.json b/go/ql/lib/ext/container.ring.model.json new file mode 100644 index 000000000000..58cadb5e2272 --- /dev/null +++ b/go/ql/lib/ext/container.ring.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["container/ring", "Ring", true, "Link", "", "", "Argument[0]", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/container.ring.model.yml b/go/ql/lib/ext/container.ring.model.yml deleted file mode 100644 index cddea0f9a6b9..000000000000 --- a/go/ql/lib/ext/container.ring.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["container/ring", "Ring", True, "Link", "", "", "Argument[0]", "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"] diff --git a/go/ql/lib/ext/context.model.json b/go/ql/lib/ext/context.model.json new file mode 100644 index 000000000000..df19e09dc905 --- /dev/null +++ b/go/ql/lib/ext/context.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["context", "", false, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["context", "", false, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["context", "", false, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["context", "", false, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"], + ["context", "Context", true, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/context.model.yml b/go/ql/lib/ext/context.model.yml deleted file mode 100644 index b71adeb6b3c7..000000000000 --- a/go/ql/lib/ext/context.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["context", "", False, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["context", "", False, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["context", "", False, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["context", "", False, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.cipher.model.json b/go/ql/lib/ext/crypto.cipher.model.json new file mode 100644 index 000000000000..6f5f621b7a97 --- /dev/null +++ b/go/ql/lib/ext/crypto.cipher.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["crypto/cipher", "AEAD", true, "Open", "", "", "Argument[2]", "Argument[0]", "taint", "manual"], + ["crypto/cipher", "AEAD", true, "Open", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"], + ["crypto/cipher", "Block", true, "Decrypt", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/crypto.cipher.model.yml b/go/ql/lib/ext/crypto.cipher.model.yml deleted file mode 100644 index 081dd447c027..000000000000 --- a/go/ql/lib/ext/crypto.cipher.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["crypto/cipher", "AEAD", True, "Open", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] - - ["crypto/cipher", "AEAD", True, "Open", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] - - ["crypto/cipher", "Block", True, "Decrypt", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.model.json b/go/ql/lib/ext/crypto.model.json new file mode 100644 index 000000000000..daf74fd5d5ef --- /dev/null +++ b/go/ql/lib/ext/crypto.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["crypto", "Decrypter", true, "Decrypt", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/crypto.model.yml b/go/ql/lib/ext/crypto.model.yml deleted file mode 100644 index 353c965df2f0..000000000000 --- a/go/ql/lib/ext/crypto.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["crypto", "Decrypter", True, "Decrypt", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.rsa.model.json b/go/ql/lib/ext/crypto.rsa.model.json new file mode 100644 index 000000000000..74c829d4e0f2 --- /dev/null +++ b/go/ql/lib/ext/crypto.rsa.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["crypto/rsa", "", false, "DecryptOAEP", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"], + ["crypto/rsa", "", false, "DecryptPKCS1v15", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/crypto.rsa.model.yml b/go/ql/lib/ext/crypto.rsa.model.yml deleted file mode 100644 index 851251973a62..000000000000 --- a/go/ql/lib/ext/crypto.rsa.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["crypto/rsa", "", False, "DecryptOAEP", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"] - - ["crypto/rsa", "", False, "DecryptPKCS1v15", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.tls.model.json b/go/ql/lib/ext/crypto.tls.model.json new file mode 100644 index 000000000000..f289d1741465 --- /dev/null +++ b/go/ql/lib/ext/crypto.tls.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["crypto/tls", "", false, "Client", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["crypto/tls", "", false, "NewListener", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["crypto/tls", "", false, "Server", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/crypto.tls.model.yml b/go/ql/lib/ext/crypto.tls.model.yml deleted file mode 100644 index ecb4c8859946..000000000000 --- a/go/ql/lib/ext/crypto.tls.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["crypto/tls", "", False, "Client", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["crypto/tls", "", False, "NewListener", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["crypto/tls", "", False, "Server", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/crypto.x509.model.json b/go/ql/lib/ext/crypto.x509.model.json new file mode 100644 index 000000000000..b9236a77983e --- /dev/null +++ b/go/ql/lib/ext/crypto.x509.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["crypto/x509", "", false, "DecryptPEMBlock", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/crypto.x509.model.yml b/go/ql/lib/ext/crypto.x509.model.yml deleted file mode 100644 index dd16777a75b7..000000000000 --- a/go/ql/lib/ext/crypto.x509.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["crypto/x509", "", False, "DecryptPEMBlock", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/database.sql.driver.model.json b/go/ql/lib/ext/database.sql.driver.model.json new file mode 100644 index 000000000000..b2c06f2f93ad --- /dev/null +++ b/go/ql/lib/ext/database.sql.driver.model.json @@ -0,0 +1,44 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["database/sql/driver", "Queryer", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql/driver", "QueryerContext", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql/driver", "Stmt", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql/driver", "StmtQueryContext", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["database/sql/driver", "Execer", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql/driver", "ExecerContext", true, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql/driver", "Conn", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql/driver", "ConnPrepareContext", true, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql/driver", "Queryer", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql/driver", "QueryerContext", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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", "Rows", true, "Next", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["database/sql/driver", "RowsColumnScanner", true, "ScanColumn", "", "", "Argument[receiver]", "Argument[2]", "taint", "manual"], + ["database/sql/driver", "ValueConverter", true, "ConvertValue", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["database/sql/driver", "Valuer", true, "Value", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/database.sql.driver.model.yml b/go/ql/lib/ext/database.sql.driver.model.yml deleted file mode 100644 index 2c5770e26194..000000000000 --- a/go/ql/lib/ext/database.sql.driver.model.yml +++ /dev/null @@ -1,29 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["database/sql/driver", "Queryer", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql/driver", "QueryerContext", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql/driver", "Stmt", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql/driver", "StmtQueryContext", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["database/sql/driver", "Execer", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql/driver", "ExecerContext", True, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql/driver", "Conn", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql/driver", "ConnPrepareContext", True, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql/driver", "Queryer", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql/driver", "QueryerContext", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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", "Rows", True, "Next", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["database/sql/driver", "RowsColumnScanner", True, "ScanColumn", "", "", "Argument[receiver]", "Argument[2]", "taint", "manual"] - - ["database/sql/driver", "ValueConverter", True, "ConvertValue", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["database/sql/driver", "Valuer", True, "Value", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/database.sql.model.json b/go/ql/lib/ext/database.sql.model.json new file mode 100644 index 000000000000..dd9564d65d3b --- /dev/null +++ b/go/ql/lib/ext/database.sql.model.json @@ -0,0 +1,74 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["database/sql", "Conn", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql", "Conn", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"], + ["database/sql", "DB", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql", "DB", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql", "DB", true, "QueryRow", "", "", "ReturnValue", "database", "manual"], + ["database/sql", "DB", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"], + ["database/sql", "Stmt", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql", "Stmt", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql", "Stmt", true, "QueryRow", "", "", "ReturnValue", "database", "manual"], + ["database/sql", "Stmt", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"], + ["database/sql", "Tx", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql", "Tx", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["database/sql", "Tx", true, "QueryRow", "", "", "ReturnValue", "database", "manual"], + ["database/sql", "Tx", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["database/sql", "Conn", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Conn", true, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "Conn", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Conn", true, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "Conn", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Conn", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "Conn", true, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Conn", true, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "DB", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "DB", true, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "DB", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "DB", true, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "DB", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "DB", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "DB", true, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "DB", true, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"], + ["database/sql", "Tx", true, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["database/sql", "", false, "ConvertAssign", "", "", "Argument[2]", "Argument[1]", "taint", "manual"], + ["database/sql", "", false, "Named", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["database/sql", "Conn", true, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"], + ["database/sql", "DB", true, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["database/sql", "DB", true, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"], + ["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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/database.sql.model.yml b/go/ql/lib/ext/database.sql.model.yml deleted file mode 100644 index 3f37c2a6eab4..000000000000 --- a/go/ql/lib/ext/database.sql.model.yml +++ /dev/null @@ -1,59 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["database/sql", "Conn", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql", "Conn", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - - ["database/sql", "DB", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql", "DB", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql", "DB", True, "QueryRow", "", "", "ReturnValue", "database", "manual"] - - ["database/sql", "DB", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - - ["database/sql", "Stmt", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql", "Stmt", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql", "Stmt", True, "QueryRow", "", "", "ReturnValue", "database", "manual"] - - ["database/sql", "Stmt", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - - ["database/sql", "Tx", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql", "Tx", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["database/sql", "Tx", True, "QueryRow", "", "", "ReturnValue", "database", "manual"] - - ["database/sql", "Tx", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["database/sql", "Conn", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Conn", True, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "Conn", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Conn", True, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "Conn", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Conn", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "Conn", True, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Conn", True, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "DB", True, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"] - - ["database/sql", "Tx", True, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["database/sql", "", False, "ConvertAssign", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] - - ["database/sql", "", False, "Named", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["database/sql", "Conn", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["database/sql", "DB", True, "Prepare", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["database/sql", "DB", True, "PrepareContext", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["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"] diff --git a/go/ql/lib/ext/empty.model.json b/go/ql/lib/ext/empty.model.json new file mode 100644 index 000000000000..af233bdb8b75 --- /dev/null +++ b/go/ql/lib/ext/empty.model.json @@ -0,0 +1,55 @@ +{ + "extensions": [ + // Make sure that the extensible model predicates have at least one definition + // to avoid errors about undefined extensionals. + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "barrierModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "barrierGuardModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "neutralModel" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [] + } + ] +} diff --git a/go/ql/lib/ext/empty.model.yml b/go/ql/lib/ext/empty.model.yml deleted file mode 100644 index 1709a6098eb5..000000000000 --- a/go/ql/lib/ext/empty.model.yml +++ /dev/null @@ -1,31 +0,0 @@ -extensions: - # Make sure that the extensible model predicates have at least one definition - # to avoid errors about undefined extensionals. - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: [] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: [] - - addsTo: - pack: codeql/go-all - extensible: barrierModel - data: [] - - addsTo: - pack: codeql/go-all - extensible: barrierGuardModel - data: [] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: [] - - addsTo: - pack: codeql/go-all - extensible: neutralModel - data: [] - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: [] diff --git a/go/ql/lib/ext/encoding.ascii85.model.json b/go/ql/lib/ext/encoding.ascii85.model.json new file mode 100644 index 000000000000..f3f4688679b3 --- /dev/null +++ b/go/ql/lib/ext/encoding.ascii85.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/ascii85", "", false, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/ascii85", "", false, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.ascii85.model.yml b/go/ql/lib/ext/encoding.ascii85.model.yml deleted file mode 100644 index 51c15078176b..000000000000 --- a/go/ql/lib/ext/encoding.ascii85.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/ascii85", "", False, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/ascii85", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.asn1.model.json b/go/ql/lib/ext/encoding.asn1.model.json new file mode 100644 index 000000000000..9f26935516ae --- /dev/null +++ b/go/ql/lib/ext/encoding.asn1.model.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/asn1", "", false, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding/asn1", "", false, "MarshalWithParams", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["encoding/asn1", "", false, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["encoding/asn1", "", false, "Unmarshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding/asn1", "", false, "UnmarshalWithParams", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["encoding/asn1", "", false, "UnmarshalWithParams", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding/asn1", "", false, "UnmarshalWithParams", "", "", "Argument[2]", "Argument[1]", "taint", "manual"], + ["encoding/asn1", "", false, "UnmarshalWithParams", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.asn1.model.yml b/go/ql/lib/ext/encoding.asn1.model.yml deleted file mode 100644 index e0c08cc216ef..000000000000 --- a/go/ql/lib/ext/encoding.asn1.model.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/asn1", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "MarshalWithParams", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["encoding/asn1", "", False, "Unmarshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] - - ["encoding/asn1", "", False, "UnmarshalWithParams", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.base32.model.json b/go/ql/lib/ext/encoding.base32.model.json new file mode 100644 index 000000000000..453da6c174e4 --- /dev/null +++ b/go/ql/lib/ext/encoding.base32.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/base32", "", false, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["encoding/base32", "Encoding", true, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/base32", "Encoding", true, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.base32.model.yml b/go/ql/lib/ext/encoding.base32.model.yml deleted file mode 100644 index 5cabdb05a414..000000000000 --- a/go/ql/lib/ext/encoding.base32.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/base32", "", False, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["encoding/base32", "Encoding", True, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/base32", "Encoding", True, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.base64.model.json b/go/ql/lib/ext/encoding.base64.model.json new file mode 100644 index 000000000000..60f9d5993490 --- /dev/null +++ b/go/ql/lib/ext/encoding.base64.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/base64", "", false, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["encoding/base64", "Encoding", true, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/base64", "Encoding", true, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.base64.model.yml b/go/ql/lib/ext/encoding.base64.model.yml deleted file mode 100644 index 1e199c5f4692..000000000000 --- a/go/ql/lib/ext/encoding.base64.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/base64", "", False, "NewDecoder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["encoding/base64", "Encoding", True, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/base64", "Encoding", True, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.binary.model.json b/go/ql/lib/ext/encoding.binary.model.json new file mode 100644 index 000000000000..adb1f52641ad --- /dev/null +++ b/go/ql/lib/ext/encoding.binary.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/binary", "", false, "Read", "", "", "Argument[0]", "Argument[2]", "taint", "manual"], + ["encoding/binary", "", false, "Write", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.binary.model.yml b/go/ql/lib/ext/encoding.binary.model.yml deleted file mode 100644 index 34705c1364ed..000000000000 --- a/go/ql/lib/ext/encoding.binary.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/binary", "", False, "Read", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["encoding/binary", "", False, "Write", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.csv.model.json b/go/ql/lib/ext/encoding.csv.model.json new file mode 100644 index 000000000000..6e6b83667f1c --- /dev/null +++ b/go/ql/lib/ext/encoding.csv.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/csv", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/csv", "Reader", true, "Read", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/csv", "Reader", true, "ReadAll", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/csv", "Writer", true, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["encoding/csv", "Writer", true, "WriteAll", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.csv.model.yml b/go/ql/lib/ext/encoding.csv.model.yml deleted file mode 100644 index 2f2611ad83a6..000000000000 --- a/go/ql/lib/ext/encoding.csv.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/csv", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/csv", "Reader", True, "Read", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/csv", "Reader", True, "ReadAll", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/csv", "Writer", True, "Write", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["encoding/csv", "Writer", True, "WriteAll", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.gob.model.json b/go/ql/lib/ext/encoding.gob.model.json new file mode 100644 index 000000000000..c9476296ab2e --- /dev/null +++ b/go/ql/lib/ext/encoding.gob.model.json @@ -0,0 +1,19 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/gob", "", false, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/gob", "Decoder", true, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["encoding/gob", "Decoder", true, "DecodeValue", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["encoding/gob", "Encoder", true, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.gob.model.yml b/go/ql/lib/ext/encoding.gob.model.yml deleted file mode 100644 index c7ce389bd1c5..000000000000 --- a/go/ql/lib/ext/encoding.gob.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/gob", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/gob", "Decoder", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["encoding/gob", "Decoder", True, "DecodeValue", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["encoding/gob", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["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"] diff --git a/go/ql/lib/ext/encoding.hex.model.json b/go/ql/lib/ext/encoding.hex.model.json new file mode 100644 index 000000000000..ccea39b511b0 --- /dev/null +++ b/go/ql/lib/ext/encoding.hex.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/hex", "", false, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/hex", "", false, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding/hex", "", false, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.hex.model.yml b/go/ql/lib/ext/encoding.hex.model.yml deleted file mode 100644 index 2c9dbdac031c..000000000000 --- a/go/ql/lib/ext/encoding.hex.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/hex", "", False, "Decode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/hex", "", False, "DecodeString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/hex", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.json.jsontext.model.json b/go/ql/lib/ext/encoding.json.jsontext.model.json new file mode 100644 index 000000000000..98e8233b6f4a --- /dev/null +++ b/go/ql/lib/ext/encoding.json.jsontext.model.json @@ -0,0 +1,43 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/json/jsontext", "", false, "AppendFloat", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "", false, "AppendFormat", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "", false, "AppendQuote", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "", false, "AppendUnquote", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "", false, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "", false, "Float", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "", false, "Float32", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "", false, "Int", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "", false, "String", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "", false, "Uint", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Decoder", true, "ReadToken", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "Decoder", true, "ReadValue", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "Decoder", true, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["encoding/json/jsontext", "Decoder", true, "UnreadBuffer", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Encoder", true, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["encoding/json/jsontext", "Encoder", true, "WriteToken", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["encoding/json/jsontext", "Encoder", true, "WriteValue", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["encoding/json/jsontext", "Pointer", true, "AppendToken", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Pointer", true, "AppendToken", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Pointer", true, "LastToken", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Pointer", true, "Parent", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Token", true, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Token", true, "Float", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "Token", true, "Float32", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "Token", true, "Int", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "Token", true, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Token", true, "Uint", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "Value", true, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Value", true, "MarshalJSON", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json/jsontext", "Value", true, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["encoding/json/jsontext", "Value", true, "UnmarshalJSON", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.json.jsontext.model.yml b/go/ql/lib/ext/encoding.json.jsontext.model.yml deleted file mode 100644 index d04afceaefe2..000000000000 --- a/go/ql/lib/ext/encoding.json.jsontext.model.yml +++ /dev/null @@ -1,36 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/json/jsontext", "", False, "AppendFloat", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "AppendFormat", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "AppendQuote", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "AppendUnquote", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "Float", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "Float32", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "Int", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "String", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "", False, "Uint", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Decoder", True, "ReadToken", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Decoder", True, "ReadValue", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Decoder", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["encoding/json/jsontext", "Decoder", True, "UnreadBuffer", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Encoder", True, "Reset", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Encoder", True, "WriteToken", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["encoding/json/jsontext", "Encoder", True, "WriteValue", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["encoding/json/jsontext", "Pointer", True, "AppendToken", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Pointer", True, "AppendToken", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Pointer", True, "LastToken", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Pointer", True, "Parent", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Token", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Token", True, "Float", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Token", True, "Float32", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Token", True, "Int", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Token", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Token", True, "Uint", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Value", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Value", True, "MarshalJSON", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json/jsontext", "Value", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["encoding/json/jsontext", "Value", True, "UnmarshalJSON", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.json.model.json b/go/ql/lib/ext/encoding.json.model.json new file mode 100644 index 000000000000..d0a43a66903b --- /dev/null +++ b/go/ql/lib/ext/encoding.json.model.json @@ -0,0 +1,26 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/json", "", false, "Compact", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/json", "", false, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/json", "", false, "Indent", "", "", "Argument[1..3]", "Argument[0]", "taint", "manual"], + ["encoding/json", "", false, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json", "", false, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"], + ["encoding/json", "", false, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/json", "", false, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["encoding/json", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.json.model.yml b/go/ql/lib/ext/encoding.json.model.yml deleted file mode 100644 index b820561fa95c..000000000000 --- a/go/ql/lib/ext/encoding.json.model.yml +++ /dev/null @@ -1,19 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/json", "", False, "Compact", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/json", "", False, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/json", "", False, "Indent", "", "", "Argument[1..3]", "Argument[0]", "taint", "manual"] - - ["encoding/json", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json", "", False, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/json", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/json", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["encoding/json", "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"] diff --git a/go/ql/lib/ext/encoding.model.json b/go/ql/lib/ext/encoding.model.json new file mode 100644 index 000000000000..6333f0e30008 --- /dev/null +++ b/go/ql/lib/ext/encoding.model.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding", "BinaryAppender", true, "AppendBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding", "BinaryAppender", true, "AppendBinary", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding", "BinaryMarshaler", true, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding", "BinaryUnmarshaler", true, "UnmarshalBinary", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["encoding", "TextAppender", true, "AppendText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding", "TextAppender", true, "AppendText", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding", "TextMarshaler", true, "MarshalText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["encoding", "TextUnmarshaler", true, "UnmarshalText", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.model.yml b/go/ql/lib/ext/encoding.model.yml deleted file mode 100644 index f2f48e3ebfe6..000000000000 --- a/go/ql/lib/ext/encoding.model.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding", "BinaryAppender", True, "AppendBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding", "BinaryAppender", True, "AppendBinary", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding", "BinaryMarshaler", True, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding", "BinaryUnmarshaler", True, "UnmarshalBinary", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["encoding", "TextAppender", True, "AppendText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding", "TextAppender", True, "AppendText", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding", "TextMarshaler", True, "MarshalText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["encoding", "TextUnmarshaler", True, "UnmarshalText", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.pem.model.json b/go/ql/lib/ext/encoding.pem.model.json new file mode 100644 index 000000000000..49661486b274 --- /dev/null +++ b/go/ql/lib/ext/encoding.pem.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/pem", "", false, "Decode", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["encoding/pem", "", false, "Encode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/pem", "", false, "EncodeToMemory", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.pem.model.yml b/go/ql/lib/ext/encoding.pem.model.yml deleted file mode 100644 index 57c0f1fc662d..000000000000 --- a/go/ql/lib/ext/encoding.pem.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/pem", "", False, "Decode", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["encoding/pem", "", False, "Encode", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/pem", "", False, "EncodeToMemory", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/encoding.xml.model.json b/go/ql/lib/ext/encoding.xml.model.json new file mode 100644 index 000000000000..2be68702b427 --- /dev/null +++ b/go/ql/lib/ext/encoding.xml.model.json @@ -0,0 +1,35 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["encoding/xml", "", false, "CopyToken", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/xml", "", false, "Escape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/xml", "", false, "EscapeText", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["encoding/xml", "", false, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["encoding/xml", "", false, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"], + ["encoding/xml", "", false, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/xml", "", false, "NewTokenDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["encoding/xml", "", false, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["encoding/xml", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/encoding.xml.model.yml b/go/ql/lib/ext/encoding.xml.model.yml deleted file mode 100644 index 40824a28c9eb..000000000000 --- a/go/ql/lib/ext/encoding.xml.model.yml +++ /dev/null @@ -1,28 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["encoding/xml", "", False, "CopyToken", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/xml", "", False, "Escape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/xml", "", False, "EscapeText", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["encoding/xml", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/xml", "", False, "MarshalIndent", "", "", "Argument[0..2]", "ReturnValue[0]", "taint", "manual"] - - ["encoding/xml", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/xml", "", False, "NewTokenDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["encoding/xml", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["encoding/xml", "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"] diff --git a/go/ql/lib/ext/errors.model.json b/go/ql/lib/ext/errors.model.json new file mode 100644 index 000000000000..04de72d2df43 --- /dev/null +++ b/go/ql/lib/ext/errors.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["errors", "", false, "As", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["errors", "", false, "AsType", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["errors", "", false, "New", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["errors", "", false, "Unwrap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/errors.model.yml b/go/ql/lib/ext/errors.model.yml deleted file mode 100644 index 36b17a49ee02..000000000000 --- a/go/ql/lib/ext/errors.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["errors", "", False, "As", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["errors", "", False, "AsType", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["errors", "", False, "New", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["errors", "", False, "Unwrap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/expvar.model.json b/go/ql/lib/ext/expvar.model.json new file mode 100644 index 000000000000..ad108f5fdff9 --- /dev/null +++ b/go/ql/lib/ext/expvar.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/expvar.model.yml b/go/ql/lib/ext/expvar.model.yml deleted file mode 100644 index 1cbfc5956568..000000000000 --- a/go/ql/lib/ext/expvar.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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"] diff --git a/go/ql/lib/ext/fmt.model.json b/go/ql/lib/ext/fmt.model.json new file mode 100644 index 000000000000..2eff48e2c9b6 --- /dev/null +++ b/go/ql/lib/ext/fmt.model.json @@ -0,0 +1,39 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["fmt", "", false, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["fmt", "", false, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["fmt", "", false, "Println", "", "", "Argument[0]", "log-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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", "", false, "Append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Append", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Appendf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Appendf", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Appendf", "", "", "Argument[2].ArrayElement", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Appendln", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Appendln", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Sprint", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Sprintf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Sprintf", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"], + ["fmt", "", false, "Sprintln", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/fmt.model.yml b/go/ql/lib/ext/fmt.model.yml deleted file mode 100644 index 2baac68da3a0..000000000000 --- a/go/ql/lib/ext/fmt.model.yml +++ /dev/null @@ -1,28 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["fmt", "", False, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["fmt", "", False, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["fmt", "", False, "Println", "", "", "Argument[0]", "log-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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", "", False, "Append", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Append", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Appendf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Appendf", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Appendf", "", "", "Argument[2].ArrayElement", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Appendln", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Appendln", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Sprint", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Sprintf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Sprintf", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["fmt", "", False, "Sprintln", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.antchfx.htmlquery.model.json b/go/ql/lib/ext/github.com.antchfx.htmlquery.model.json new file mode 100644 index 000000000000..630e737edbfa --- /dev/null +++ b/go/ql/lib/ext/github.com.antchfx.htmlquery.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/antchfx/htmlquery", "", false, "Find", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/htmlquery", "", false, "FindOne", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/htmlquery", "", false, "Query", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/htmlquery", "", false, "QueryAll", "", "", "Argument[1]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.antchfx.htmlquery.model.yml b/go/ql/lib/ext/github.com.antchfx.htmlquery.model.yml deleted file mode 100644 index 14402f65a8c1..000000000000 --- a/go/ql/lib/ext/github.com.antchfx.htmlquery.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/antchfx/htmlquery", "", False, "Find", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/htmlquery", "", False, "FindOne", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/htmlquery", "", False, "Query", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/htmlquery", "", False, "QueryAll", "", "", "Argument[1]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.antchfx.jsonquery.model.json b/go/ql/lib/ext/github.com.antchfx.jsonquery.model.json new file mode 100644 index 000000000000..2d337352535e --- /dev/null +++ b/go/ql/lib/ext/github.com.antchfx.jsonquery.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/antchfx/jsonquery", "", false, "Find", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/jsonquery", "", false, "FindOne", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/jsonquery", "", false, "Query", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/jsonquery", "", false, "QueryAll", "", "", "Argument[1]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.antchfx.jsonquery.model.yml b/go/ql/lib/ext/github.com.antchfx.jsonquery.model.yml deleted file mode 100644 index f50bbff2ff4d..000000000000 --- a/go/ql/lib/ext/github.com.antchfx.jsonquery.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/antchfx/jsonquery", "", False, "Find", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/jsonquery", "", False, "FindOne", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/jsonquery", "", False, "Query", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/jsonquery", "", False, "QueryAll", "", "", "Argument[1]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.antchfx.xmlquery.model.json b/go/ql/lib/ext/github.com.antchfx.xmlquery.model.json new file mode 100644 index 000000000000..9e4a2de633ac --- /dev/null +++ b/go/ql/lib/ext/github.com.antchfx.xmlquery.model.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/antchfx/xmlquery", "", false, "Find", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/xmlquery", "", false, "FindOne", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/xmlquery", "", false, "FindEach", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/xmlquery", "", false, "FindEachWithBreak", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/xmlquery", "", false, "Query", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/xmlquery", "", false, "QueryAll", "", "", "Argument[1]", "xpath-injection", "manual"], + ["github.com/antchfx/xmlquery", "Node", true, "SelectElement", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/antchfx/xmlquery", "Node", true, "SelectElements", "", "", "Argument[0]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.antchfx.xmlquery.model.yml b/go/ql/lib/ext/github.com.antchfx.xmlquery.model.yml deleted file mode 100644 index 5a9eec5af7e0..000000000000 --- a/go/ql/lib/ext/github.com.antchfx.xmlquery.model.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/antchfx/xmlquery", "", False, "Find", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/xmlquery", "", False, "FindOne", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/xmlquery", "", False, "FindEach", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/xmlquery", "", False, "FindEachWithBreak", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/xmlquery", "", False, "Query", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/xmlquery", "", False, "QueryAll", "", "", "Argument[1]", "xpath-injection", "manual"] - - ["github.com/antchfx/xmlquery", "Node", True, "SelectElement", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/antchfx/xmlquery", "Node", True, "SelectElements", "", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.antchfx.xpath.model.json b/go/ql/lib/ext/github.com.antchfx.xpath.model.json new file mode 100644 index 000000000000..c8bfaf2c7647 --- /dev/null +++ b/go/ql/lib/ext/github.com.antchfx.xpath.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/antchfx/xpath", "", false, "Compile", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/antchfx/xpath", "", false, "CompileWithNS", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/antchfx/xpath", "", false, "MustCompile", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/antchfx/xpath", "", false, "Select", "", "", "Argument[1]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.antchfx.xpath.model.yml b/go/ql/lib/ext/github.com.antchfx.xpath.model.yml deleted file mode 100644 index bb087f381adf..000000000000 --- a/go/ql/lib/ext/github.com.antchfx.xpath.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/antchfx/xpath", "", False, "Compile", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/antchfx/xpath", "", False, "CompileWithNS", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/antchfx/xpath", "", False, "MustCompile", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/antchfx/xpath", "", False, "Select", "", "", "Argument[1]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.appleboy.gin-jwt.model.json b/go/ql/lib/ext/github.com.appleboy.gin-jwt.model.json new file mode 100644 index 000000000000..18a8f799acb7 --- /dev/null +++ b/go/ql/lib/ext/github.com.appleboy.gin-jwt.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/appleboy/gin-jwt", "GinJWTMiddleware", true, "Key", "", "", "", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.appleboy.gin-jwt.model.yml b/go/ql/lib/ext/github.com.appleboy.gin-jwt.model.yml deleted file mode 100644 index 8911b5d5346c..000000000000 --- a/go/ql/lib/ext/github.com.appleboy.gin-jwt.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/appleboy/gin-jwt", "GinJWTMiddleware", True, "Key", "", "", "", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.beego.beego.client.orm.model.json b/go/ql/lib/ext/github.com.beego.beego.client.orm.model.json new file mode 100644 index 000000000000..3bb8b803719a --- /dev/null +++ b/go/ql/lib/ext/github.com.beego.beego.client.orm.model.json @@ -0,0 +1,74 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["beego-orm", "github.com/beego/beego/client/orm"], + ["beego-orm", "github.com/astaxie/beego/orm"], + ["beego-orm", "github.com/beego/beego/orm"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:beego-orm", "DB", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:beego-orm", "DB", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:beego-orm", "DB", true, "QueryRow", "", "", "ReturnValue", "database", "manual"], + ["group:beego-orm", "DB", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"], + ["group:beego-orm", "DQL", true, "Read", "", "", "Argument[0]", "database", "manual"], + ["group:beego-orm", "DQL", true, "ReadWithCtx", "", "", "Argument[1]", "database", "manual"], + ["group:beego-orm", "DQL", true, "ReadForUpdate", "", "", "Argument[0]", "database", "manual"], + ["group:beego-orm", "DQL", true, "ReadForUpdateWithCtx", "", "", "Argument[1]", "database", "manual"], + ["group:beego-orm", "DQL", true, "ReadOrCreate", "", "", "Argument[0]", "database", "manual"], + ["group:beego-orm", "DQL", true, "ReadOrCreateWithCtx", "", "", "Argument[1]", "database", "manual"], + ["group:beego-orm", "Ormer", true, "Read", "", "", "Argument[0]", "database", "manual"], + ["group:beego-orm", "Ormer", true, "ReadForUpdate", "", "", "Argument[0]", "database", "manual"], + ["group:beego-orm", "Ormer", true, "ReadOrCreate", "", "", "Argument[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:beego-orm", "Condition", true, "Raw", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "DB", true, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:beego-orm", "Ormer", true, "Raw", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "And", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Delete", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "From", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Having", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "In", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "InnerJoin", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "InsertInto", "", "", "Argument[0..1]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "LeftJoin", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "On", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Or", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "RightJoin", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Select", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Set", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Subquery", "", "", "Argument[0..1]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Update", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Values", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QueryBuilder", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:beego-orm", "QuerySeter", true, "FilterRaw", "", "", "Argument[1]", "sql-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.beego.beego.client.orm.model.yml b/go/ql/lib/ext/github.com.beego.beego.client.orm.model.yml deleted file mode 100644 index c629191a3668..000000000000 --- a/go/ql/lib/ext/github.com.beego.beego.client.orm.model.yml +++ /dev/null @@ -1,60 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["beego-orm", "github.com/beego/beego/client/orm"] - - ["beego-orm", "github.com/astaxie/beego/orm"] - - ["beego-orm", "github.com/beego/beego/orm"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:beego-orm", "DB", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:beego-orm", "DB", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:beego-orm", "DB", True, "QueryRow", "", "", "ReturnValue", "database", "manual"] - - ["group:beego-orm", "DB", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - - ["group:beego-orm", "DQL", True, "Read", "", "", "Argument[0]", "database", "manual"] - - ["group:beego-orm", "DQL", True, "ReadWithCtx", "", "", "Argument[1]", "database", "manual"] - - ["group:beego-orm", "DQL", True, "ReadForUpdate", "", "", "Argument[0]", "database", "manual"] - - ["group:beego-orm", "DQL", True, "ReadForUpdateWithCtx", "", "", "Argument[1]", "database", "manual"] - - ["group:beego-orm", "DQL", True, "ReadOrCreate", "", "", "Argument[0]", "database", "manual"] - - ["group:beego-orm", "DQL", True, "ReadOrCreateWithCtx", "", "", "Argument[1]", "database", "manual"] - - ["group:beego-orm", "Ormer", True, "Read", "", "", "Argument[0]", "database", "manual"] - - ["group:beego-orm", "Ormer", True, "ReadForUpdate", "", "", "Argument[0]", "database", "manual"] - - ["group:beego-orm", "Ormer", True, "ReadOrCreate", "", "", "Argument[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:beego-orm", "Condition", True, "Raw", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "DB", True, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:beego-orm", "Ormer", True, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "And", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Delete", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "From", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Having", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "In", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "InnerJoin", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "InsertInto", "", "", "Argument[0..1]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "LeftJoin", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "On", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Or", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "RightJoin", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Select", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Set", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Subquery", "", "", "Argument[0..1]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Update", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Values", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QueryBuilder", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:beego-orm", "QuerySeter", True, "FilterRaw", "", "", "Argument[1]", "sql-injection", "manual"] - diff --git a/go/ql/lib/ext/github.com.beego.beego.core.logs.model.json b/go/ql/lib/ext/github.com.beego.beego.core.logs.model.json new file mode 100644 index 000000000000..e7cf36b70f1d --- /dev/null +++ b/go/ql/lib/ext/github.com.beego.beego.core.logs.model.json @@ -0,0 +1,45 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["beego-logs", "github.com/astaxie/beego/logs"], + ["beego-logs", "github.com/beego/beego/logs"], + ["beego-logs", "github.com/beego/beego/core/logs"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:beego-logs", "", false, "Alert", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Critical", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Emergency", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Error", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Info", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Informational", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Notice", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Trace", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "", false, "Warning", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Alert", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Critical", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Emergency", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Error", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Info", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Informational", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Notice", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Trace", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego-logs", "BeeLogger", true, "Warning", "", "", "Argument[0..1]", "log-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.beego.beego.core.logs.model.yml b/go/ql/lib/ext/github.com.beego.beego.core.logs.model.yml deleted file mode 100644 index b55c3be507dd..000000000000 --- a/go/ql/lib/ext/github.com.beego.beego.core.logs.model.yml +++ /dev/null @@ -1,34 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["beego-logs", "github.com/astaxie/beego/logs"] - - ["beego-logs", "github.com/beego/beego/logs"] - - ["beego-logs", "github.com/beego/beego/core/logs"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:beego-logs", "", False, "Alert", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Critical", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Emergency", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Error", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Info", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Informational", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Notice", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Trace", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "", False, "Warning", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Alert", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Critical", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Emergency", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Error", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Info", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Informational", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Notice", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Trace", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego-logs", "BeeLogger", True, "Warning", "", "", "Argument[0..1]", "log-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.beego.beego.core.utils.model.json b/go/ql/lib/ext/github.com.beego.beego.core.utils.model.json new file mode 100644 index 000000000000..96f811ae840a --- /dev/null +++ b/go/ql/lib/ext/github.com.beego.beego.core.utils.model.json @@ -0,0 +1,45 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["beego-utils", "github.com/astaxie/beego/utils"], + ["beego-utils", "github.com/beego/beego/utils"], + ["beego-utils", "github.com/beego/beego/core/utils"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:beego-utils", "", false, "Display", "", "", "Argument[0]", "log-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:beego-utils", "", false, "SliceChunk", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceDiff", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceFilter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceIntersect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceMerge", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SlicePad", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceRand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "", false, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "BeeMap", true, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "BeeMap", true, "Items", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:beego-utils", "BeeMap", true, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml b/go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml deleted file mode 100644 index 63c05b920401..000000000000 --- a/go/ql/lib/ext/github.com.beego.beego.core.utils.model.yml +++ /dev/null @@ -1,30 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["beego-utils", "github.com/astaxie/beego/utils"] - - ["beego-utils", "github.com/beego/beego/utils"] - - ["beego-utils", "github.com/beego/beego/core/utils"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:beego-utils", "", False, "Display", "", "", "Argument[0]", "log-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:beego-utils", "", False, "SliceChunk", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceDiff", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceFilter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceIntersect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceMerge", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SlicePad", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceRand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceReduce", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceShuffle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "", False, "SliceUnique", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "BeeMap", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "BeeMap", True, "Items", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:beego-utils", "BeeMap", True, "Set", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.json b/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.json new file mode 100644 index 000000000000..3a468fb11f43 --- /dev/null +++ b/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.json @@ -0,0 +1,59 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["beego-context", "github.com/astaxie/beego/context"], + ["beego-context", "github.com/beego/beego/context"], + ["beego-context", "github.com/beego/beego/server/web/context"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // path-injection + ["group:beego-context", "BeegoOutput", true, "Download", "", "", "Argument[0]", "path-injection", "manual"], + // url-redirection + ["group:beego-context", "Context", true, "Redirect", "", "", "Argument[1]", "url-redirection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:beego-context", "", false, "WriteBody", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:beego-context", "BeegoInput", true, "Bind", "", "", "Argument[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Data", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "GetData", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Header", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Param", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Params", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Query", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Refer", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "Referer", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "RequestBody", "", "", "", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "URI", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "URL", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "BeegoInput", true, "UserAgent", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego-context", "Context", true, "GetCookie", "", "", "ReturnValue", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml b/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml deleted file mode 100644 index da59cc203df1..000000000000 --- a/go/ql/lib/ext/github.com.beego.beego.server.web.context.model.yml +++ /dev/null @@ -1,40 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["beego-context", "github.com/astaxie/beego/context"] - - ["beego-context", "github.com/beego/beego/context"] - - ["beego-context", "github.com/beego/beego/server/web/context"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # path-injection - - ["group:beego-context", "BeegoOutput", True, "Download", "", "", "Argument[0]", "path-injection", "manual"] - # url-redirection - - ["group:beego-context", "Context", True, "Redirect", "", "", "Argument[1]", "url-redirection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:beego-context", "", False, "WriteBody", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:beego-context", "BeegoInput", True, "Bind", "", "", "Argument[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Data", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "GetData", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Header", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Param", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Params", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Query", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Refer", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "Referer", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "RequestBody", "", "", "", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "URI", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "URL", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "BeegoInput", True, "UserAgent", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego-context", "Context", True, "GetCookie", "", "", "ReturnValue", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.beego.beego.server.web.model.json b/go/ql/lib/ext/github.com.beego.beego.server.web.model.json new file mode 100644 index 000000000000..8be97d49734e --- /dev/null +++ b/go/ql/lib/ext/github.com.beego.beego.server.web.model.json @@ -0,0 +1,80 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["beego", "github.com/astaxie/beego"], + ["beego", "github.com/beego/beego"], + ["beego", "github.com/beego/beego/server/web"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // log-injection + ["group:beego", "", false, "Alert", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Critical", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Emergency", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Error", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Info", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Informational", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Notice", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Trace", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:beego", "", false, "Warning", "", "", "Argument[0..1]", "log-injection", "manual"], + // path-injection + ["group:beego", "", false, "Walk", "", "", "Argument[1]", "path-injection", "manual"], + ["group:beego", "Controller", true, "SaveToFile", "", "", "Argument[1]", "path-injection", "manual"], + ["group:beego", "Controller", true, "SaveToFileWithBuffer", "", "", "Argument[1]", "path-injection", "manual"], // only exists in v2 + ["group:beego", "FileSystem", true, "Open", "", "", "Argument[0]", "path-injection", "manual"], + // url-redirection + ["group:beego", "Controller", true, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:beego", "", false, "HTML2str", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego", "", false, "Htmlquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego", "", false, "Htmlunquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego", "", false, "MapGet", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["group:beego", "", false, "ParseForm", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["group:beego", "", false, "Str2html", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:beego", "", false, "Substr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:beego", "Controller", true, "ParseForm", "", "", "Argument[0]", "remote", "manual"], + ["group:beego", "Controller", true, "GetFile", "", "", "ReturnValue[0..1]", "remote", "manual"], + ["group:beego", "Controller", true, "GetFiles", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego", "Controller", true, "GetString", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego", "Controller", true, "GetStrings", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:beego", "Controller", true, "Input", "", "", "ReturnValue[0]", "remote", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "barrierModel" + }, + "data": [ + ["group:beego", "", true, "Htmlquote", "", "", "ReturnValue", "html-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml b/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml deleted file mode 100644 index 8588af2652c9..000000000000 --- a/go/ql/lib/ext/github.com.beego.beego.server.web.model.yml +++ /dev/null @@ -1,57 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["beego", "github.com/astaxie/beego"] - - ["beego", "github.com/beego/beego"] - - ["beego", "github.com/beego/beego/server/web"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # log-injection - - ["group:beego", "", False, "Alert", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Critical", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Emergency", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Error", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Info", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Informational", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Notice", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Trace", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:beego", "", False, "Warning", "", "", "Argument[0..1]", "log-injection", "manual"] - # path-injection - - ["group:beego", "", False, "Walk", "", "", "Argument[1]", "path-injection", "manual"] - - ["group:beego", "Controller", True, "SaveToFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["group:beego", "Controller", True, "SaveToFileWithBuffer", "", "", "Argument[1]", "path-injection", "manual"] # only exists in v2 - - ["group:beego", "FileSystem", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] - # url-redirection - - ["group:beego", "Controller", True, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:beego", "", False, "HTML2str", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "Htmlquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "Htmlunquote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "MapGet", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["group:beego", "", False, "ParseForm", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["group:beego", "", False, "Str2html", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:beego", "", False, "Substr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:beego", "Controller", True, "ParseForm", "", "", "Argument[0]", "remote", "manual"] - - ["group:beego", "Controller", True, "GetFile", "", "", "ReturnValue[0..1]", "remote", "manual"] - - ["group:beego", "Controller", True, "GetFiles", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego", "Controller", True, "GetString", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego", "Controller", True, "GetStrings", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:beego", "Controller", True, "Input", "", "", "ReturnValue[0]", "remote", "manual"] - - addsTo: - pack: codeql/go-all - extensible: barrierModel - data: - - ["group:beego", "", True, "Htmlquote", "", "", "ReturnValue", "html-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.caarlos0.env.model.json b/go/ql/lib/ext/github.com.caarlos0.env.model.json new file mode 100644 index 000000000000..f9f4e19e64f9 --- /dev/null +++ b/go/ql/lib/ext/github.com.caarlos0.env.model.json @@ -0,0 +1,27 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/caarlos0/env", "", false, "Parse", "", "", "Argument[0]", "environment", "manual"], + ["github.com/caarlos0/env", "", false, "ParseAs", "", "", "ReturnValue[0]", "environment", "manual"], + ["github.com/caarlos0/env", "", false, "ParseAsWithOptions", "", "", "ReturnValue[0]", "environment", "manual"], + ["github.com/caarlos0/env", "", false, "ParseWithFuncs", "", "", "Argument[0]", "environment", "manual"], + ["github.com/caarlos0/env", "", false, "ParseWithOptions", "", "", "Argument[0]", "environment", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/caarlos0/env", "", false, "Must", "", "", "Argument[0]", "ReturnValue", "value", "manual"], + ["github.com/caarlos0/env", "", false, "ToMap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.caarlos0.env.model.yml b/go/ql/lib/ext/github.com.caarlos0.env.model.yml deleted file mode 100644 index 42f6380c3fa9..000000000000 --- a/go/ql/lib/ext/github.com.caarlos0.env.model.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/caarlos0/env", "", False, "Parse", "", "", "Argument[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseAs", "", "", "ReturnValue[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseAsWithOptions", "", "", "ReturnValue[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseWithFuncs", "", "", "Argument[0]", "environment", "manual"] - - ["github.com/caarlos0/env", "", False, "ParseWithOptions", "", "", "Argument[0]", "environment", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/caarlos0/env", "", False, "Must", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["github.com/caarlos0/env", "", False, "ToMap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.christrenkamp.goxpath.model.json b/go/ql/lib/ext/github.com.christrenkamp.goxpath.model.json new file mode 100644 index 000000000000..eda98b3d8321 --- /dev/null +++ b/go/ql/lib/ext/github.com.christrenkamp.goxpath.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/ChrisTrenkamp/goxpath", "", false, "MustParse", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/ChrisTrenkamp/goxpath", "", false, "Parse", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/ChrisTrenkamp/goxpath", "", false, "ParseExec", "", "", "Argument[0]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.christrenkamp.goxpath.model.yml b/go/ql/lib/ext/github.com.christrenkamp.goxpath.model.yml deleted file mode 100644 index f5a4aeefb136..000000000000 --- a/go/ql/lib/ext/github.com.christrenkamp.goxpath.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/ChrisTrenkamp/goxpath", "", False, "MustParse", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/ChrisTrenkamp/goxpath", "", False, "Parse", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/ChrisTrenkamp/goxpath", "", False, "ParseExec", "", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.coder.websocket.model.json b/go/ql/lib/ext/github.com.coder.websocket.model.json new file mode 100644 index 000000000000..e2aa753bb656 --- /dev/null +++ b/go/ql/lib/ext/github.com.coder.websocket.model.json @@ -0,0 +1,24 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["coder/websocket", "github.com/coder/websocket"], + ["coder/websocket", "nhooyr.io/websocket"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:coder/websocket", "Conn", true, "Read", "", "", "ReturnValue[1]", "remote", "manual"], + ["group:coder/websocket", "Conn", true, "Reader", "", "", "ReturnValue[1]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.coder.websocket.model.yml b/go/ql/lib/ext/github.com.coder.websocket.model.yml deleted file mode 100644 index cf94840ea910..000000000000 --- a/go/ql/lib/ext/github.com.coder.websocket.model.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["coder/websocket", "github.com/coder/websocket"] - - ["coder/websocket", "nhooyr.io/websocket"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:coder/websocket", "Conn", True, "Read", "", "", "ReturnValue[1]", "remote", "manual"] - - ["group:coder/websocket", "Conn", True, "Reader", "", "", "ReturnValue[1]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.json b/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.json new file mode 100644 index 000000000000..37e2090236db --- /dev/null +++ b/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/codeskyblue/go-sh", "", false, "Command", "", "", "Argument[0]", "command-injection", "manual"], + ["github.com/codeskyblue/go-sh", "Session", true, "Call", "", "", "Argument[0]", "command-injection", "manual"], + ["github.com/codeskyblue/go-sh", "Session", true, "Command", "", "", "Argument[0]", "command-injection", "manual"], + ["github.com/codeskyblue/go-sh", "Session", true, "Exec", "", "", "Argument[0]", "command-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml b/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml deleted file mode 100644 index fab0d5915ae0..000000000000 --- a/go/ql/lib/ext/github.com.codeskyblue.go-sh.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/codeskyblue/go-sh", "", False, "Command", "", "", "Argument[0]", "command-injection", "manual"] - - ["github.com/codeskyblue/go-sh", "Session", True, "Call", "", "", "Argument[0]", "command-injection", "manual"] - - ["github.com/codeskyblue/go-sh", "Session", True, "Command", "", "", "Argument[0]", "command-injection", "manual"] - - ["github.com/codeskyblue/go-sh", "Session", True, "Exec", "", "", "Argument[0]", "command-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.couchbase.gocb.model.json b/go/ql/lib/ext/github.com.couchbase.gocb.model.json new file mode 100644 index 000000000000..44629b6a48a2 --- /dev/null +++ b/go/ql/lib/ext/github.com.couchbase.gocb.model.json @@ -0,0 +1,120 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["gocb1", "fixed-version:github.com/couchbase/gocb"], + ["gocb1", "fixed-version:gopkg.in/couchbase/gocb.v1"], + ["gocb1", "fixed-version:github.com/couchbaselabs/gocb"], + ["gocb2", "github.com/couchbase/gocb/v2"], + ["gocb2", "gopkg.in/couchbase/gocb.v2"], + ["gocb2", "github.com/couchbaselabs/gocb/v2"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:gocb1", "Cluster", true, "ExecuteAnalyticsQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb1", "Cluster", true, "ExecuteN1qlQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb1", "Cluster", true, "ExecuteSearchQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Cluster", true, "AnalyticsQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Cluster", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "Get", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "GetAndLock", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "GetAndTouch", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "GetAnyReplica", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "LookupIn", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "LookupInAllReplicas", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "LookupInAnyReplica", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Collection", true, "Scan", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Scope", true, "AnalyticsQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "Scope", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "TransactionAttemptContext", true, "Get", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "TransactionAttemptContext", true, "GetReplicaFromPreferredServerGroup", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "TransactionAttemptContext", true, "Insert", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "TransactionAttemptContext", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "TransactionAttemptContext", true, "Replace", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "ViewIndexManager", true, "GetAllDesignDocuments", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gocb2", "ViewIndexManager", true, "GetDesignDocument", "", "", "ReturnValue[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:gocb1", "Bucket", true, "ExecuteN1qlQuery", "", "", "Argument[0]", "nosql-injection", "manual"], + ["group:gocb1", "Bucket", true, "ExecuteAnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"], + ["group:gocb1", "Cluster", true, "ExecuteN1qlQuery", "", "", "Argument[0]", "nosql-injection", "manual"], + ["group:gocb1", "Cluster", true, "ExecuteAnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"], + ["group:gocb2", "Cluster", true, "AnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"], + ["group:gocb2", "Cluster", true, "Query", "", "", "Argument[0]", "nosql-injection", "manual"], + ["group:gocb2", "Scope", true, "AnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"], + ["group:gocb2", "Scope", true, "Query", "", "", "Argument[0]", "nosql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:gocb1", "", false, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "", false, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "AnalyticsResults", true, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb1", "AnalyticsResults", true, "Next", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb1", "AnalyticsResults", true, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "AnalyticsQuery", true, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "AnalyticsQuery", true, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "AnalyticsQuery", true, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "AnalyticsQuery", true, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "AnalyticsQuery", true, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "AnalyticsQuery", true, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "N1qlQuery", true, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "QueryResults", true, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb1", "QueryResults", true, "Next", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb1", "QueryResults", true, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb1", "SearchResults", true, "Hits", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"], + ["group:gocb2", "AnalyticsResult", true, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "AnalyticsResult", true, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "AnalyticsResult", true, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "AnalyticsResultRaw", true, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "GetResult", true, "Content", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "LookupInAllReplicasResult", true, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "LookupInResult", true, "ContentAt", "", "", "Argument[receiver]", "Argument[1]", "taint", "manual"], + ["group:gocb2", "MutateInResult", true, "ContentAt", "", "", "Argument[receiver]", "Argument[1]", "taint", "manual"], + ["group:gocb2", "QueryResult", true, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "QueryResult", true, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "QueryResult", true, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "QueryResultRaw", true, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "ScanResult", true, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "ScanResultItem", true, "Content", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "SearchResult", true, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "SearchResult", true, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "SearchResultRaw", true, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "TransactionGetResult", true, "Content", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "TransactionQueryResult", true, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "TransactionQueryResult", true, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:gocb2", "ViewResult", true, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "ViewResult", true, "Row", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:gocb2", "ViewResultRaw", true, "NextBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.couchbase.gocb.model.yml b/go/ql/lib/ext/github.com.couchbase.gocb.model.yml deleted file mode 100644 index d485c5a25286..000000000000 --- a/go/ql/lib/ext/github.com.couchbase.gocb.model.yml +++ /dev/null @@ -1,101 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["gocb1", "fixed-version:github.com/couchbase/gocb"] - - ["gocb1", "fixed-version:gopkg.in/couchbase/gocb.v1"] - - ["gocb1", "fixed-version:github.com/couchbaselabs/gocb"] - - ["gocb2", "github.com/couchbase/gocb/v2"] - - ["gocb2", "gopkg.in/couchbase/gocb.v2"] - - ["gocb2", "github.com/couchbaselabs/gocb/v2"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:gocb1", "Cluster", True, "ExecuteAnalyticsQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb1", "Cluster", True, "ExecuteN1qlQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb1", "Cluster", True, "ExecuteSearchQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Cluster", True, "AnalyticsQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Cluster", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "Get", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "GetAndLock", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "GetAndTouch", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "GetAnyReplica", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "LookupIn", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "LookupInAllReplicas", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "LookupInAnyReplica", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Collection", True, "Scan", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Scope", True, "AnalyticsQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "Scope", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "TransactionAttemptContext", True, "Get", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "TransactionAttemptContext", True, "GetReplicaFromPreferredServerGroup", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "TransactionAttemptContext", True, "Insert", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "TransactionAttemptContext", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "TransactionAttemptContext", True, "Replace", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "ViewIndexManager", True, "GetAllDesignDocuments", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gocb2", "ViewIndexManager", True, "GetDesignDocument", "", "", "ReturnValue[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:gocb1", "Bucket", True, "ExecuteN1qlQuery", "", "", "Argument[0]", "nosql-injection", "manual"] - - ["group:gocb1", "Bucket", True, "ExecuteAnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"] - - ["group:gocb1", "Cluster", True, "ExecuteN1qlQuery", "", "", "Argument[0]", "nosql-injection", "manual"] - - ["group:gocb1", "Cluster", True, "ExecuteAnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"] - - ["group:gocb2", "Cluster", True, "AnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"] - - ["group:gocb2", "Cluster", True, "Query", "", "", "Argument[0]", "nosql-injection", "manual"] - - ["group:gocb2", "Scope", True, "AnalyticsQuery", "", "", "Argument[0]", "nosql-injection", "manual"] - - ["group:gocb2", "Scope", True, "Query", "", "", "Argument[0]", "nosql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:gocb1", "", False, "NewAnalyticsQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "", False, "NewN1qlQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "AnalyticsResults", True, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb1", "AnalyticsResults", True, "Next", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb1", "AnalyticsResults", True, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "AnalyticsQuery", True, "ContextId", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "AnalyticsQuery", True, "Deferred", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "AnalyticsQuery", True, "Pretty", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "AnalyticsQuery", True, "Priority", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "AnalyticsQuery", True, "RawParam", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "AnalyticsQuery", True, "ServerSideTimeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "AdHoc", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "Consistency", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "ConsistentWith", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "Custom", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "PipelineBatch", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "PipelineCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "Profile", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "ReadOnly", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "ScanCap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "N1qlQuery", True, "Timeout", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "QueryResults", True, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb1", "QueryResults", True, "Next", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb1", "QueryResults", True, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb1", "SearchResults", True, "Hits", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["group:gocb2", "AnalyticsResult", True, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "AnalyticsResult", True, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "AnalyticsResult", True, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "AnalyticsResultRaw", True, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "GetResult", True, "Content", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "LookupInAllReplicasResult", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "LookupInResult", True, "ContentAt", "", "", "Argument[receiver]", "Argument[1]", "taint", "manual"] - - ["group:gocb2", "MutateInResult", True, "ContentAt", "", "", "Argument[receiver]", "Argument[1]", "taint", "manual"] - - ["group:gocb2", "QueryResult", True, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "QueryResult", True, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "QueryResult", True, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "QueryResultRaw", True, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "ScanResult", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "ScanResultItem", True, "Content", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "SearchResult", True, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "SearchResult", True, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "SearchResultRaw", True, "NextBytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "TransactionGetResult", True, "Content", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "TransactionQueryResult", True, "One", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "TransactionQueryResult", True, "Row", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:gocb2", "ViewResult", True, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "ViewResult", True, "Row", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:gocb2", "ViewResultRaw", True, "NextBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.cristalhq.jwt.model.json b/go/ql/lib/ext/github.com.cristalhq.jwt.model.json new file mode 100644 index 000000000000..1d34566c7991 --- /dev/null +++ b/go/ql/lib/ext/github.com.cristalhq.jwt.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/cristalhq/jwt", "", false, "NewSignerHS", "", "", "Argument[1]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.cristalhq.jwt.model.yml b/go/ql/lib/ext/github.com.cristalhq.jwt.model.yml deleted file mode 100644 index cdf84d232928..000000000000 --- a/go/ql/lib/ext/github.com.cristalhq.jwt.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/cristalhq/jwt", "", False, "NewSignerHS", "", "", "Argument[1]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.json b/go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.json new file mode 100644 index 000000000000..c1e1d7971bca --- /dev/null +++ b/go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.json @@ -0,0 +1,21 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/davecgh/go-spew/spew", "", false, "Dump", "", "", "Argument[0]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Fdump", "", "", "Argument[1]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Fprint", "", "", "Argument[1]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Fprintf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Fprintln", "", "", "Argument[1]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["github.com/davecgh/go-spew/spew", "", false, "Println", "", "", "Argument[0]", "log-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.yml b/go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.yml deleted file mode 100644 index 4b4996926e31..000000000000 --- a/go/ql/lib/ext/github.com.davecgh.go-spew.spew.model.yml +++ /dev/null @@ -1,14 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/davecgh/go-spew/spew", "", False, "Dump", "", "", "Argument[0]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Fdump", "", "", "Argument[1]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Fprint", "", "", "Argument[1]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Fprintf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Fprintln", "", "", "Argument[1]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["github.com/davecgh/go-spew/spew", "", False, "Println", "", "", "Argument[0]", "log-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.json b/go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.json new file mode 100644 index 000000000000..1905012c9223 --- /dev/null +++ b/go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.json @@ -0,0 +1,32 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/dgrijalva/jwt-go", "SigningMethod", true, "Sign", "", "", "Argument[1]", "credentials-key", "manual"], + ["github.com/dgrijalva/jwt-go", "Token", true, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"], + ["github.com/dgrijalva/jwt-go", "Parser", true, "ParseUnverified", "", "", "Argument[0]", "jwt", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/dgrijalva/jwt-go", "", false, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "Parser", true, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "", false, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "Parser", true, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "", false, "ParseECPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "", false, "ParseECPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "", false, "ParseRSAPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "", false, "ParseRSAPrivateKeyFromPEMWithPassword", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/dgrijalva/jwt-go", "", false, "ParseRSAPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.yml b/go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.yml deleted file mode 100644 index 90b62a800dba..000000000000 --- a/go/ql/lib/ext/github.com.dgrijalva.jwt-go.model.yml +++ /dev/null @@ -1,21 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/dgrijalva/jwt-go", "SigningMethod", True, "Sign", "", "", "Argument[1]", "credentials-key", "manual"] - - ["github.com/dgrijalva/jwt-go", "Token", True, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"] - - ["github.com/dgrijalva/jwt-go", "Parser", True, "ParseUnverified", "", "", "Argument[0]", "jwt", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/dgrijalva/jwt-go", "", False, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "Parser", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "", False, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "Parser", True, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "", False, "ParseECPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "", False, "ParseECPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "", False, "ParseRSAPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "", False, "ParseRSAPrivateKeyFromPEMWithPassword", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/dgrijalva/jwt-go", "", False, "ParseRSAPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.elazarl.goproxy.model.json b/go/ql/lib/ext/github.com.elazarl.goproxy.model.json new file mode 100644 index 000000000000..d78377fc1047 --- /dev/null +++ b/go/ql/lib/ext/github.com.elazarl.goproxy.model.json @@ -0,0 +1,34 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/elazarl/goproxy", "ProxyCtx", true, "Logf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["github.com/elazarl/goproxy", "ProxyCtx", true, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/elazarl/goproxy", "ProxyCtx", true, "UserData", "", "", "", "remote", "manual"], + ["github.com/elazarl/goproxy", "ProxyCtx", true, "Charset", "", "", "ReturnValue", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.elazarl.goproxy.model.yml b/go/ql/lib/ext/github.com.elazarl.goproxy.model.yml deleted file mode 100644 index 9dc8284ea58f..000000000000 --- a/go/ql/lib/ext/github.com.elazarl.goproxy.model.yml +++ /dev/null @@ -1,20 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/elazarl/goproxy", "ProxyCtx", True, "Logf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["github.com/elazarl/goproxy", "ProxyCtx", True, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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"] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/elazarl/goproxy", "ProxyCtx", True, "UserData", "", "", "", "remote", "manual"] - - ["github.com/elazarl/goproxy", "ProxyCtx", True, "Charset", "", "", "ReturnValue", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.emicklei.go-restful.model.json b/go/ql/lib/ext/github.com.emicklei.go-restful.model.json new file mode 100644 index 000000000000..c41bff5e6300 --- /dev/null +++ b/go/ql/lib/ext/github.com.emicklei.go-restful.model.json @@ -0,0 +1,19 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/emicklei/go-restful", "Request", true, "QueryParameters", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["github.com/emicklei/go-restful", "Request", true, "QueryParameter", "", "", "ReturnValue", "remote", "manual"], + ["github.com/emicklei/go-restful", "Request", true, "BodyParameter", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/emicklei/go-restful", "Request", true, "HeaderParameter", "", "", "ReturnValue", "remote", "manual"], + ["github.com/emicklei/go-restful", "Request", true, "PathParameter", "", "", "ReturnValue", "remote", "manual"], + ["github.com/emicklei/go-restful", "Request", true, "PathParameters", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue + ["github.com/emicklei/go-restful", "Request", true, "ReadEntity", "", "", "Argument[0]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.emicklei.go-restful.model.yml b/go/ql/lib/ext/github.com.emicklei.go-restful.model.yml deleted file mode 100644 index 45043709c0d9..000000000000 --- a/go/ql/lib/ext/github.com.emicklei.go-restful.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/emicklei/go-restful", "Request", True, "QueryParameters", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["github.com/emicklei/go-restful", "Request", True, "QueryParameter", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/emicklei/go-restful", "Request", True, "BodyParameter", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/emicklei/go-restful", "Request", True, "HeaderParameter", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/emicklei/go-restful", "Request", True, "PathParameter", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/emicklei/go-restful", "Request", True, "PathParameters", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue - - ["github.com/emicklei/go-restful", "Request", True, "ReadEntity", "", "", "Argument[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.evanphx.json-patch.model.json b/go/ql/lib/ext/github.com.evanphx.json-patch.model.json new file mode 100644 index 000000000000..eb542b98e48f --- /dev/null +++ b/go/ql/lib/ext/github.com.evanphx.json-patch.model.json @@ -0,0 +1,24 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/evanphx/json-patch", "", false, "CreateMergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "", false, "DecodePatch", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "", false, "MergeMergePatches", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "", false, "MergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "Patch", true, "Apply", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "Patch", true, "Apply", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "Patch", true, "ApplyIndent", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "Patch", true, "ApplyIndent", "", "", "Argument[0]", "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[receiver]", "ReturnValue[0]", "taint", "manual"], + ["github.com/evanphx/json-patch", "Patch", true, "ApplyWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.evanphx.json-patch.model.yml b/go/ql/lib/ext/github.com.evanphx.json-patch.model.yml deleted file mode 100644 index 4824f521e4ef..000000000000 --- a/go/ql/lib/ext/github.com.evanphx.json-patch.model.yml +++ /dev/null @@ -1,17 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/evanphx/json-patch", "", False, "CreateMergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "", False, "DecodePatch", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "", False, "MergeMergePatches", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "", False, "MergePatch", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "Patch", True, "Apply", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "Patch", True, "Apply", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "Patch", True, "ApplyIndent", "", "", "Argument[0]", "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[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/evanphx/json-patch", "Patch", True, "ApplyWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.json b/go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.json new file mode 100644 index 000000000000..6737bcf19e15 --- /dev/null +++ b/go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/form3tech-oss/jwt-go", "Token", true, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"], + ["github.com/form3tech-oss/jwt-go", "SigningMethod", true, "Sign", "", "", "Argument[1]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.yml b/go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.yml deleted file mode 100644 index 92a82798d8a6..000000000000 --- a/go/ql/lib/ext/github.com.form3tech-oss.jwt-go.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/form3tech-oss/jwt-go", "Token", True, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"] - - ["github.com/form3tech-oss/jwt-go", "SigningMethod", True, "Sign", "", "", "Argument[1]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.gin-gonic.gin.model.json b/go/ql/lib/ext/github.com.gin-gonic.gin.model.json new file mode 100644 index 000000000000..e0f20e33da77 --- /dev/null +++ b/go/ql/lib/ext/github.com.gin-gonic.gin.model.json @@ -0,0 +1,79 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/gin-gonic/gin", "Context", true, "File", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "FileAttachment", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "SaveUploadedFile", "", "", "Argument[1]", "path-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/gin-gonic/gin", "Context", true, "Accepted", "", "", "", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "Bind", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "BindHeader", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "BindJSON", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "BindQuery", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "BindXML", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "BindYAML", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "BindUri", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "BindWith", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ClientIP", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ContentType", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "DefaultPostForm", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "DefaultQuery", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "FullPath", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "GetHeader", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "GetPostForm", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "GetPostFormArray", "", "", "ReturnValue[0]", "remote", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["github.com/gin-gonic/gin", "Context", true, "GetPostFormMap", "", "", "ReturnValue[0]", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue (and .MapKey?) + ["github.com/gin-gonic/gin", "Context", true, "GetQuery", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "GetQueryArray", "", "", "ReturnValue[0]", "remote", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["github.com/gin-gonic/gin", "Context", true, "GetQueryMap", "", "", "ReturnValue[0]", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue (and .MapKey?) + ["github.com/gin-gonic/gin", "Context", true, "GetRawData", "", "", "ReturnValue[0]", "remote", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["github.com/gin-gonic/gin", "Context", true, "GetString", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "GetStringMap", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue (and .MapKey?) + ["github.com/gin-gonic/gin", "Context", true, "GetStringMapString", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue (and .MapKey?) + ["github.com/gin-gonic/gin", "Context", true, "GetStringMapStringSlice", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue.ArrayElement (and .MapKey?) + ["github.com/gin-gonic/gin", "Context", true, "GetStringSlice", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["github.com/gin-gonic/gin", "Context", true, "MustBindWith", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "Param", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "Params", "", "", "", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "PostForm", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "PostFormArray", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["github.com/gin-gonic/gin", "Context", true, "PostFormMap", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue (and .MapKey?) + ["github.com/gin-gonic/gin", "Context", true, "Query", "", "", "ReturnValue", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "QueryArray", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["github.com/gin-gonic/gin", "Context", true, "QueryMap", "", "", "ReturnValue", "remote", "manual"], // TODO: when sources can have access paths, use .MapValue (and .MapKey?) + ["github.com/gin-gonic/gin", "Context", true, "ShouldBind", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindBodyWith", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindHeader", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindJSON", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindQuery", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindUri", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindWith", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindXML", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gin-gonic/gin", "Context", true, "ShouldBindYAML", "", "", "Argument[0]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gin-gonic.gin.model.yml b/go/ql/lib/ext/github.com.gin-gonic.gin.model.yml deleted file mode 100644 index 92b1c757ac7a..000000000000 --- a/go/ql/lib/ext/github.com.gin-gonic.gin.model.yml +++ /dev/null @@ -1,64 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/gin-gonic/gin", "Context", True, "File", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "FileAttachment", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "SaveUploadedFile", "", "", "Argument[1]", "path-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/gin-gonic/gin", "Context", True, "Accepted", "", "", "", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "Bind", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "BindHeader", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "BindJSON", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "BindQuery", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "BindXML", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "BindYAML", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "BindUri", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "BindWith", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ClientIP", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ContentType", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "DefaultPostForm", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "DefaultQuery", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "FullPath", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "GetHeader", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "GetPostForm", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "GetPostFormArray", "", "", "ReturnValue[0]", "remote", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["github.com/gin-gonic/gin", "Context", True, "GetPostFormMap", "", "", "ReturnValue[0]", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue (and .MapKey?) - - ["github.com/gin-gonic/gin", "Context", True, "GetQuery", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "GetQueryArray", "", "", "ReturnValue[0]", "remote", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["github.com/gin-gonic/gin", "Context", True, "GetQueryMap", "", "", "ReturnValue[0]", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue (and .MapKey?) - - ["github.com/gin-gonic/gin", "Context", True, "GetRawData", "", "", "ReturnValue[0]", "remote", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["github.com/gin-gonic/gin", "Context", True, "GetString", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "GetStringMap", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue (and .MapKey?) - - ["github.com/gin-gonic/gin", "Context", True, "GetStringMapString", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue (and .MapKey?) - - ["github.com/gin-gonic/gin", "Context", True, "GetStringMapStringSlice", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue.ArrayElement (and .MapKey?) - - ["github.com/gin-gonic/gin", "Context", True, "GetStringSlice", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["github.com/gin-gonic/gin", "Context", True, "MustBindWith", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "Param", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "Params", "", "", "", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "PostForm", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "PostFormArray", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["github.com/gin-gonic/gin", "Context", True, "PostFormMap", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue (and .MapKey?) - - ["github.com/gin-gonic/gin", "Context", True, "Query", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "QueryArray", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["github.com/gin-gonic/gin", "Context", True, "QueryMap", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue (and .MapKey?) - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBind", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindBodyWith", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindHeader", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindJSON", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindQuery", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindUri", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindWith", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindXML", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gin-gonic/gin", "Context", True, "ShouldBindYAML", "", "", "Argument[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.go-chi.chi.model.json b/go/ql/lib/ext/github.com.go-chi.chi.model.json new file mode 100644 index 000000000000..47c381889177 --- /dev/null +++ b/go/ql/lib/ext/github.com.go-chi.chi.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/go-chi/chi", "", false, "URLParam", "", "", "ReturnValue", "remote", "manual"], + ["github.com/go-chi/chi", "", false, "URLParamFromCtx", "", "", "ReturnValue", "remote", "manual"], + ["github.com/go-chi/chi", "Context", true, "URLParam", "", "", "ReturnValue", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.go-chi.chi.model.yml b/go/ql/lib/ext/github.com.go-chi.chi.model.yml deleted file mode 100644 index c24e7ab2b4a2..000000000000 --- a/go/ql/lib/ext/github.com.go-chi.chi.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/go-chi/chi", "", False, "URLParam", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/go-chi/chi", "", False, "URLParamFromCtx", "", "", "ReturnValue", "remote", "manual"] - - ["github.com/go-chi/chi", "Context", True, "URLParam", "", "", "ReturnValue", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.go-chi.jwtauth.model.json b/go/ql/lib/ext/github.com.go-chi.jwtauth.model.json new file mode 100644 index 000000000000..9e2171dc8650 --- /dev/null +++ b/go/ql/lib/ext/github.com.go-chi.jwtauth.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/go-chi/jwtauth", "", false, "New", "", "", "Argument[1]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.go-chi.jwtauth.model.yml b/go/ql/lib/ext/github.com.go-chi.jwtauth.model.yml deleted file mode 100644 index 7cfb1ff80f51..000000000000 --- a/go/ql/lib/ext/github.com.go-chi.jwtauth.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/go-chi/jwtauth", "", False, "New", "", "", "Argument[1]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.json b/go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.json new file mode 100644 index 000000000000..4c310033b8b3 --- /dev/null +++ b/go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.json @@ -0,0 +1,37 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["go-jose/jwt", "gopkg.in/square/go-jose/jwt"], + ["go-jose/jwt", "gopkg.in/go-jose/go-jose/jwt"], + ["go-jose/jwt", "github.com/square/go-jose/jwt"], + ["go-jose/jwt", "github.com/go-jose/go-jose/jwt"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:go-jose/jwt", "JSONWebToken", true, "UnsafeClaimsWithoutVerification", "", "", "Argument[receiver]", "jwt", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:go-jose/jwt", "", false, "ParseEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["group:go-jose/jwt", "", false, "ParseSigned", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["group:go-jose/jwt", "NestedJSONWebToken", true, "ParseSignedAndEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["group:go-jose/jwt", "NestedJSONWebToken", true, "Decrypt", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.yml b/go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.yml deleted file mode 100644 index ba06d21a93ef..000000000000 --- a/go/ql/lib/ext/github.com.go-jose.go-jose.jwt.model.yml +++ /dev/null @@ -1,22 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["go-jose/jwt", "gopkg.in/square/go-jose/jwt"] - - ["go-jose/jwt", "gopkg.in/go-jose/go-jose/jwt"] - - ["go-jose/jwt", "github.com/square/go-jose/jwt"] - - ["go-jose/jwt", "github.com/go-jose/go-jose/jwt"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:go-jose/jwt", "JSONWebToken", True, "UnsafeClaimsWithoutVerification", "", "", "Argument[receiver]", "jwt", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:go-jose/jwt", "", False, "ParseEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["group:go-jose/jwt", "", False, "ParseSigned", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["group:go-jose/jwt", "NestedJSONWebToken", True, "ParseSignedAndEncrypted", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["group:go-jose/jwt", "NestedJSONWebToken", True, "Decrypt", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.go-jose.go-jose.model.json b/go/ql/lib/ext/github.com.go-jose.go-jose.model.json new file mode 100644 index 000000000000..16382dc8d5c5 --- /dev/null +++ b/go/ql/lib/ext/github.com.go-jose.go-jose.model.json @@ -0,0 +1,26 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["go-jose", "gopkg.in/square/go-jose"], + ["go-jose", "gopkg.in/go-jose/go-jose"], + ["go-jose", "github.com/square/go-jose"], + ["go-jose", "github.com/go-jose/go-jose"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:go-jose", "Recipient", true, "Key", "", "", "", "credentials-key", "manual"], + ["group:go-jose", "SigningKey", true, "Key", "", "", "", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.go-jose.go-jose.model.yml b/go/ql/lib/ext/github.com.go-jose.go-jose.model.yml deleted file mode 100644 index a27073d872e5..000000000000 --- a/go/ql/lib/ext/github.com.go-jose.go-jose.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["go-jose", "gopkg.in/square/go-jose"] - - ["go-jose", "gopkg.in/go-jose/go-jose"] - - ["go-jose", "github.com/square/go-jose"] - - ["go-jose", "github.com/go-jose/go-jose"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:go-jose", "Recipient", True, "Key", "", "", "", "credentials-key", "manual"] - - ["group:go-jose", "SigningKey", True, "Key", "", "", "", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.json b/go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.json new file mode 100644 index 000000000000..a385f1ff3e12 --- /dev/null +++ b/go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/go-kit/kit/auth/jwt", "", false, "NewSigner", "", "", "Argument[1]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.yml b/go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.yml deleted file mode 100644 index 7a9da5bd4b06..000000000000 --- a/go/ql/lib/ext/github.com.go-kit.kit.auth.jwt.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/go-kit/kit/auth/jwt", "", False, "NewSigner", "", "", "Argument[1]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.go-pg.pg.orm.model.json b/go/ql/lib/ext/github.com.go-pg.pg.orm.model.json new file mode 100644 index 000000000000..9289f55cc3df --- /dev/null +++ b/go/ql/lib/ext/github.com.go-pg.pg.orm.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/go-pg/pg/orm", "Formatter", true, "Append", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["github.com/go-pg/pg/orm", "Formatter", true, "Append", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["github.com/go-pg/pg/orm", "Formatter", true, "AppendBytes", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["github.com/go-pg/pg/orm", "Formatter", true, "AppendBytes", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["github.com/go-pg/pg/orm", "Formatter", true, "FormatQuery", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["github.com/go-pg/pg/orm", "Formatter", true, "FormatQuery", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.go-pg.pg.orm.model.yml b/go/ql/lib/ext/github.com.go-pg.pg.orm.model.yml deleted file mode 100644 index 3c926992721b..000000000000 --- a/go/ql/lib/ext/github.com.go-pg.pg.orm.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/go-pg/pg/orm", "Formatter", True, "Append", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["github.com/go-pg/pg/orm", "Formatter", True, "Append", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["github.com/go-pg/pg/orm", "Formatter", True, "AppendBytes", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["github.com/go-pg/pg/orm", "Formatter", True, "AppendBytes", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["github.com/go-pg/pg/orm", "Formatter", True, "FormatQuery", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["github.com/go-pg/pg/orm", "Formatter", True, "FormatQuery", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.json b/go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.json new file mode 100644 index 000000000000..f93cb567cf7f --- /dev/null +++ b/go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.json @@ -0,0 +1,29 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["xmlpath", "gopkg.in/xmlpath"], + ["xmlpath", "github.com/go-xmlpath/xmlpath"], + ["xmlpath", "github.com/crankycoder/xmlpath"], + ["xmlpath", "launchpad.net/xmlpath"], + ["xmlpath", "github.com/masterzen/xmlpath"], + ["xmlpath", "github.com/going/toolkit/xmlpath"], + ["xmlpath", "gopkg.in/go-xmlpath/xmlpath"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:xmlpath", "", false, "Compile", "", "", "Argument[0]", "xpath-injection", "manual"], + ["group:xmlpath", "", false, "MustCompile", "", "", "Argument[0]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.yml b/go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.yml deleted file mode 100644 index 931e65f18326..000000000000 --- a/go/ql/lib/ext/github.com.go-xmlpath.xmlpath.model.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["xmlpath", "gopkg.in/xmlpath"] - - ["xmlpath", "github.com/go-xmlpath/xmlpath"] - - ["xmlpath", "github.com/crankycoder/xmlpath"] - - ["xmlpath", "launchpad.net/xmlpath"] - - ["xmlpath", "github.com/masterzen/xmlpath"] - - ["xmlpath", "github.com/going/toolkit/xmlpath"] - - ["xmlpath", "gopkg.in/go-xmlpath/xmlpath"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:xmlpath", "", False, "Compile", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["group:xmlpath", "", False, "MustCompile", "", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.gobuffalo.envy.model.json b/go/ql/lib/ext/github.com.gobuffalo.envy.model.json new file mode 100644 index 000000000000..d5956c16ab43 --- /dev/null +++ b/go/ql/lib/ext/github.com.gobuffalo.envy.model.json @@ -0,0 +1,19 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/gobuffalo/envy", "", false, "Environ", "", "", "ReturnValue", "environment", "manual"], + ["github.com/gobuffalo/envy", "", false, "Get", "", "", "ReturnValue", "environment", "manual"], + ["github.com/gobuffalo/envy", "", false, "GoBin", "", "", "ReturnValue", "environment", "manual"], + ["github.com/gobuffalo/envy", "", false, "GoPath", "", "", "ReturnValue", "environment", "manual"], + ["github.com/gobuffalo/envy", "", false, "GoPaths", "", "", "ReturnValue", "environment", "manual"], + ["github.com/gobuffalo/envy", "", false, "Map", "", "", "ReturnValue", "environment", "manual"], + ["github.com/gobuffalo/envy", "", false, "MustGet", "", "", "ReturnValue[0]", "environment", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gobuffalo.envy.model.yml b/go/ql/lib/ext/github.com.gobuffalo.envy.model.yml deleted file mode 100644 index 1d0d890560d9..000000000000 --- a/go/ql/lib/ext/github.com.gobuffalo.envy.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/gobuffalo/envy", "", False, "Environ", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "Get", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "GoBin", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "GoPath", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "GoPaths", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "Map", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/gobuffalo/envy", "", False, "MustGet", "", "", "ReturnValue[0]", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.gobwas.ws.model.json b/go/ql/lib/ext/github.com.gobwas.ws.model.json new file mode 100644 index 000000000000..f102aea423d0 --- /dev/null +++ b/go/ql/lib/ext/github.com.gobwas.ws.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/gobwas/ws", "", false, "ReadFrame", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/gobwas/ws", "", false, "ReadHeader", "", "", "ReturnValue[0]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gobwas.ws.model.yml b/go/ql/lib/ext/github.com.gobwas.ws.model.yml deleted file mode 100644 index fcaaee08d912..000000000000 --- a/go/ql/lib/ext/github.com.gobwas.ws.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/gobwas/ws", "", False, "ReadFrame", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/gobwas/ws", "", False, "ReadHeader", "", "", "ReturnValue[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.gofiber.fiber.model.json b/go/ql/lib/ext/github.com.gofiber.fiber.model.json new file mode 100644 index 000000000000..4e4e28e85526 --- /dev/null +++ b/go/ql/lib/ext/github.com.gofiber.fiber.model.json @@ -0,0 +1,19 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // path-injection + ["github.com/gofiber/fiber", "Ctx", true, "SendFile", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/gofiber/fiber", "Ctx", true, "Download", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/gofiber/fiber", "Ctx", true, "SaveFile", "", "", "Argument[1]", "path-injection", "manual"], + ["github.com/gofiber/fiber", "Ctx", true, "SaveFileToStorage", "", "", "Argument[1]", "path-injection", "manual"], // does not exist in v1 + // url-redirection + ["github.com/gofiber/fiber", "Ctx", true, "Redirect", "", "", "Argument[0]", "url-redirection[receiver]", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gofiber.fiber.model.yml b/go/ql/lib/ext/github.com.gofiber.fiber.model.yml deleted file mode 100644 index c959d137301f..000000000000 --- a/go/ql/lib/ext/github.com.gofiber.fiber.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # path-injection - - ["github.com/gofiber/fiber", "Ctx", True, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gofiber/fiber", "Ctx", True, "Download", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/gofiber/fiber", "Ctx", True, "SaveFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/gofiber/fiber", "Ctx", True, "SaveFileToStorage", "", "", "Argument[1]", "path-injection", "manual"] # does not exist in v1 - # url-redirection - - ["github.com/gofiber/fiber", "Ctx", True, "Redirect", "", "", "Argument[0]", "url-redirection[receiver]", "manual"] diff --git a/go/ql/lib/ext/github.com.gogf.gf-jwt.model.json b/go/ql/lib/ext/github.com.gogf.gf-jwt.model.json new file mode 100644 index 000000000000..b3396c4459de --- /dev/null +++ b/go/ql/lib/ext/github.com.gogf.gf-jwt.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/gogf/gf-jwt", "GfJWTMiddleware", true, "Key", "", "", "", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gogf.gf-jwt.model.yml b/go/ql/lib/ext/github.com.gogf.gf-jwt.model.yml deleted file mode 100644 index fd98d1446e2b..000000000000 --- a/go/ql/lib/ext/github.com.gogf.gf-jwt.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/gogf/gf-jwt", "GfJWTMiddleware", True, "Key", "", "", "", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.json b/go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.json new file mode 100644 index 000000000000..4018caff5a4b --- /dev/null +++ b/go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.json @@ -0,0 +1,141 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // These models are for v1. Some of them hold for v2, but we should model v2 properly. + ["github.com/gogf/gf/database/gdb", "Core", true, "DoCommit", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "DoExec", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "DoGetAll", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "DoQuery", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "DoPrepare", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetAll", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetArray", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetCount", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetOne", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetScan", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetStruct", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetStructs", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetValue", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "Raw", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "DoCommit", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "DoExec", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "DoGetAll", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "DoQuery", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "DoPrepare", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetAll", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetArray", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetCount", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetOne", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetScan", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetStruct", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetStructs", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetValue", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "Raw", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "DoCommit", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "DoExec", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "DoGetAll", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "DoQuery", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "DoPrepare", "", "", "Argument[2]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetAll", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetArray", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetCount", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetOne", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetScan", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetStruct", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetStructs", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "GetValue", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/gogf/gf/database/gdb", "Tx", true, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + // These models are for v1. Some of them hold for v2, but we should model v2 properly. + ["github.com/gogf/gf/database/gdb", "Core", true, "DoGetAll", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "DoQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetAll", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetArray", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetOne", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetScan", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetStruct", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetStructs", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "GetValue", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Core", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "DoGetAll", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "DoQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetAll", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetArray", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetOne", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetScan", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "GetValue", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "DB", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "All", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "Array", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "FindAll", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "FindArray", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "FindOne", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "FindScan", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "FindValue", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "One", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "Scan", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "ScanList", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "Select", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "Struct", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "Structs", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "Model", true, "Value", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "TX", true, "GetAll", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "TX", true, "GetOne", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "TX", true, "GetScan", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "TX", true, "GetStruct", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "TX", true, "GetStructs", "", "", "Argument[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "TX", true, "GetValue", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/gogf/gf/database/gdb", "TX", true, "Query", "", "", "ReturnValue[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/gogf/gf/database/gdb", "Record", true, "GMap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Record", true, "Interface", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Record", true, "Json", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Record", true, "Map", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Record", true, "Struct", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Record", true, "Xml", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "Array", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "Chunk", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "Interface", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "Json", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "List", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "MapKeyInt", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "MapKeyStr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "MapKeyUint", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "MapKeyValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "RecordKeyInt", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "RecordKeyStr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "RecordKeyUint", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "ScanList", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "Structs", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/gogf/gf/database/gdb", "Result", true, "Xml", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.yml b/go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.yml deleted file mode 100644 index fbca149dd7ac..000000000000 --- a/go/ql/lib/ext/github.com.gogf.gf.database.gdb.model.yml +++ /dev/null @@ -1,130 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # These models are for v1. Some of them hold for v2, but we should model v2 properly. - - ["github.com/gogf/gf/database/gdb", "Core", True, "DoCommit", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "DoExec", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "DoGetAll", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "DoQuery", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "DoPrepare", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetAll", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetArray", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetCount", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetOne", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetScan", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetStruct", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetStructs", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetValue", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "DoCommit", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "DoExec", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "DoGetAll", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "DoQuery", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "DoPrepare", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetAll", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetArray", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetCount", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetOne", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetScan", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetStruct", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetStructs", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetValue", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "DoCommit", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "DoExec", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "DoGetAll", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "DoQuery", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "DoPrepare", "", "", "Argument[2]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetAll", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetArray", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetCount", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetOne", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetScan", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetStruct", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetStructs", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "GetValue", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/gogf/gf/database/gdb", "Tx", True, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - # These models are for v1. Some of them hold for v2, but we should model v2 properly. - - ["github.com/gogf/gf/database/gdb", "Core", True, "DoGetAll", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "DoQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetAll", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetArray", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetOne", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetScan", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetStruct", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetStructs", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "GetValue", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Core", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - - ["github.com/gogf/gf/database/gdb", "DB", True, "DoGetAll", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "DoQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetAll", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetArray", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetOne", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetScan", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "GetValue", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "DB", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - - ["github.com/gogf/gf/database/gdb", "Model", True, "All", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "Array", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "FindAll", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "FindArray", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "FindOne", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "FindScan", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "FindValue", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "One", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "Scan", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "ScanList", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "Select", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "Struct", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "Structs", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "Model", True, "Value", "", "", "ReturnValue[0]", "database", "manual"] - - - ["github.com/gogf/gf/database/gdb", "TX", True, "GetAll", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "TX", True, "GetOne", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "TX", True, "GetScan", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "TX", True, "GetStruct", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "TX", True, "GetStructs", "", "", "Argument[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "TX", True, "GetValue", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/gogf/gf/database/gdb", "TX", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/gogf/gf/database/gdb", "Record", True, "GMap", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Record", True, "Interface", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Record", True, "Json", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Record", True, "Map", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Record", True, "Struct", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Record", True, "Xml", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - - ["github.com/gogf/gf/database/gdb", "Result", True, "Array", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "Chunk", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "Interface", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "Json", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "List", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "MapKeyInt", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "MapKeyStr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "MapKeyUint", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "MapKeyValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "RecordKeyInt", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "RecordKeyStr", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "RecordKeyUint", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "ScanList", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "Structs", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/gogf/gf/database/gdb", "Result", True, "Xml", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.golang-jwt.jwt.model.json b/go/ql/lib/ext/github.com.golang-jwt.jwt.model.json new file mode 100644 index 000000000000..f8fcf556cab0 --- /dev/null +++ b/go/ql/lib/ext/github.com.golang-jwt.jwt.model.json @@ -0,0 +1,34 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/golang-jwt/jwt", "SigningMethod", true, "Sign", "", "", "Argument[1]", "credentials-key", "manual"], + ["github.com/golang-jwt/jwt", "Token", true, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"], + ["github.com/golang-jwt/jwt", "Parser", true, "ParseUnverified", "", "", "Argument[0]", "jwt", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/golang-jwt/jwt", "", false, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "Parser", true, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "Parser", true, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "ParseECPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "ParseECPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "ParseEdPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "ParseEdPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "ParseRSAPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "ParseRSAPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang-jwt/jwt", "", false, "RegisterSigningMethod", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.golang-jwt.jwt.model.yml b/go/ql/lib/ext/github.com.golang-jwt.jwt.model.yml deleted file mode 100644 index 494c94709994..000000000000 --- a/go/ql/lib/ext/github.com.golang-jwt.jwt.model.yml +++ /dev/null @@ -1,23 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/golang-jwt/jwt", "SigningMethod", True, "Sign", "", "", "Argument[1]", "credentials-key", "manual"] - - ["github.com/golang-jwt/jwt", "Token", True, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"] - - ["github.com/golang-jwt/jwt", "Parser", True, "ParseUnverified", "", "", "Argument[0]", "jwt", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/golang-jwt/jwt", "", False, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "Parser", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "Parser", True, "ParseWithClaims", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "ParseECPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "ParseECPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "ParseEdPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "ParseEdPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "ParseRSAPrivateKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "ParseRSAPublicKeyFromPEM", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang-jwt/jwt", "", False, "RegisterSigningMethod", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.golang.glog.model.json b/go/ql/lib/ext/github.com.golang.glog.model.json new file mode 100644 index 000000000000..9884f41297cb --- /dev/null +++ b/go/ql/lib/ext/github.com.golang.glog.model.json @@ -0,0 +1,113 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["glog", "github.com/golang/glog"], + ["glog", "gopkg.in/glog"], + ["glog", "k8s.io/klog"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:glog", "", false, "Error", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "ErrorContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "ErrorContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "", false, "ErrorContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "", false, "ErrorContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "ErrorDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "ErrorDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "", false, "Errorln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "Exit", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "ExitContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "ExitContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "", false, "ExitContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "", false, "ExitContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "ExitDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "ExitDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "Exitf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "", false, "Exitln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "FatalContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "FatalContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "", false, "FatalContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "", false, "FatalContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "FatalDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "FatalDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "", false, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "Info", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "InfoContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "InfoContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "", false, "InfoContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "", false, "InfoContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "InfoDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "InfoDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "", false, "Infoln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "Warning", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "", false, "WarningContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "WarningContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "", false, "WarningContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "", false, "WarningContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "WarningDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "", false, "WarningDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "", false, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "", false, "Warningln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Error", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ErrorContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ErrorContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ErrorContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ErrorContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ErrorDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ErrorDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Errorln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Exit", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ExitContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ExitContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ExitContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ExitContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ExitDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "ExitDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Exitf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Exitln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "FatalContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "FatalContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "FatalContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "FatalContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "FatalDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "FatalDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Info", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "InfoContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "InfoContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "InfoContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "InfoContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "InfoDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "InfoDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Infoln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Warning", "", "", "Argument[0]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "WarningContext", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "WarningContextDepth", "", "", "Argument[2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "WarningContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "WarningContextf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "WarningDepth", "", "", "Argument[1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "WarningDepthf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:glog", "Verbose", true, "Warningln", "", "", "Argument[0]", "log-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.golang.glog.model.yml b/go/ql/lib/ext/github.com.golang.glog.model.yml deleted file mode 100644 index 275450f2c447..000000000000 --- a/go/ql/lib/ext/github.com.golang.glog.model.yml +++ /dev/null @@ -1,102 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["glog", "github.com/golang/glog"] - - ["glog", "gopkg.in/glog"] - - ["glog", "k8s.io/klog"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:glog", "", False, "Error", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "ErrorContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "ErrorContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "", False, "ErrorContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "", False, "ErrorContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "ErrorDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "ErrorDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "", False, "Errorln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "Exit", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "ExitContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "ExitContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "", False, "ExitContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "", False, "ExitContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "ExitDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "ExitDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "Exitf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "", False, "Exitln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "FatalContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "FatalContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "", False, "FatalContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "", False, "FatalContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "FatalDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "FatalDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "", False, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "Info", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "InfoContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "InfoContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "", False, "InfoContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "", False, "InfoContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "InfoDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "InfoDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "", False, "Infoln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "Warning", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "", False, "WarningContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "WarningContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "", False, "WarningContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "", False, "WarningContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "WarningDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "", False, "WarningDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "", False, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "", False, "Warningln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Error", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ErrorContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ErrorContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ErrorContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ErrorContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ErrorDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ErrorDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Errorln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Exit", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ExitContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ExitContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ExitContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ExitContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ExitDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "ExitDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Exitf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Exitln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "FatalContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "FatalContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "FatalContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "FatalContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "FatalDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "FatalDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Info", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "InfoContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "InfoContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "InfoContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "InfoContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "InfoDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "InfoDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Infoln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Warning", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "WarningContext", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "WarningContextDepth", "", "", "Argument[2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "WarningContextDepthf", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "WarningContextf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "WarningDepth", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "WarningDepthf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:glog", "Verbose", True, "Warningln", "", "", "Argument[0]", "log-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.golang.protobuf.proto.model.json b/go/ql/lib/ext/github.com.golang.protobuf.proto.model.json new file mode 100644 index 000000000000..876af5ede361 --- /dev/null +++ b/go/ql/lib/ext/github.com.golang.protobuf.proto.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/golang/protobuf/proto", "", false, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["github.com/golang/protobuf/proto", "", false, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/golang/protobuf/proto", "", false, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["github.com/golang/protobuf/proto", "", false, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml b/go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml deleted file mode 100644 index 8513d1198164..000000000000 --- a/go/ql/lib/ext/github.com.golang.protobuf.proto.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/golang/protobuf/proto", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["github.com/golang/protobuf/proto", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/golang/protobuf/proto", "", False, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["github.com/golang/protobuf/proto", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.gorilla.mux.model.json b/go/ql/lib/ext/github.com.gorilla.mux.model.json new file mode 100644 index 000000000000..462cc96e5fbb --- /dev/null +++ b/go/ql/lib/ext/github.com.gorilla.mux.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/gorilla/mux", "", false, "Vars", "", "", "ReturnValue", "remote", "manual"] // TODO: when sources can have access paths, use .MapValue (and .MapKey?) + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gorilla.mux.model.yml b/go/ql/lib/ext/github.com.gorilla.mux.model.yml deleted file mode 100644 index b97fc4d2c1d2..000000000000 --- a/go/ql/lib/ext/github.com.gorilla.mux.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/gorilla/mux", "", False, "Vars", "", "", "ReturnValue", "remote", "manual"] # TODO: when sources can have access paths, use .MapValue (and .MapKey?) diff --git a/go/ql/lib/ext/github.com.gorilla.websocket.model.json b/go/ql/lib/ext/github.com.gorilla.websocket.model.json new file mode 100644 index 000000000000..9128d6515ff2 --- /dev/null +++ b/go/ql/lib/ext/github.com.gorilla.websocket.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/gorilla/websocket", "", false, "ReadJSON", "", "", "Argument[1]", "remote", "manual"], + ["github.com/gorilla/websocket", "Conn", true, "ReadJSON", "", "", "Argument[0]", "remote", "manual"], + ["github.com/gorilla/websocket", "Conn", true, "ReadMessage", "", "", "ReturnValue[1]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.gorilla.websocket.model.yml b/go/ql/lib/ext/github.com.gorilla.websocket.model.yml deleted file mode 100644 index 3f03bba8a48c..000000000000 --- a/go/ql/lib/ext/github.com.gorilla.websocket.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/gorilla/websocket", "", False, "ReadJSON", "", "", "Argument[1]", "remote", "manual"] - - ["github.com/gorilla/websocket", "Conn", True, "ReadJSON", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/gorilla/websocket", "Conn", True, "ReadMessage", "", "", "ReturnValue[1]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.json b/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.json new file mode 100644 index 000000000000..6fc1d134e68d --- /dev/null +++ b/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/hashicorp/go-envparse", "", false, "Parse", "", "", "ReturnValue", "environment", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml b/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml deleted file mode 100644 index 73a178fbdcc8..000000000000 --- a/go/ql/lib/ext/github.com.hashicorp.go-envparse.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/hashicorp/go-envparse", "", False, "Parse", "", "", "ReturnValue", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.jmoiron.sqlx.model.json b/go/ql/lib/ext/github.com.jmoiron.sqlx.model.json new file mode 100644 index 000000000000..7b9532323eab --- /dev/null +++ b/go/ql/lib/ext/github.com.jmoiron.sqlx.model.json @@ -0,0 +1,100 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/jmoiron/sqlx", "", true, "Get", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "", true, "GetContext", "", "", "Argument[2]", "database", "manual"], + ["github.com/jmoiron/sqlx", "", true, "NamedQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "", true, "NamedQueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "", true, "Select", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "", true, "SelectContext", "", "", "Argument[2]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Conn", true, "GetContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Conn", true, "QueryRowxContext", "", "", "ReturnValue", "database", "manual"], + ["github.com/jmoiron/sqlx", "Conn", true, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Conn", true, "SelectContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "Get", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "GetContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "NamedQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "NamedQueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "Queryx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "Select", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "SelectContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "Get", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "GetContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "Queryx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "Select", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "NamedStmt", true, "SelectContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "Get", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "GetContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "Queryx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "Select", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Stmt", true, "SelectContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "Get", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "GetContext", "", "", "Argument[1]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "NamedQuery", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "Queryx", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "Select", "", "", "Argument[0]", "database", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "SelectContext", "", "", "Argument[1]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/jmoiron/sqlx", "DB", true, "Get", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "MustExec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "NamedExec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "NamedQuery", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "Queryx", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "DB", true, "Select", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "Get", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "MustExec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "NamedExec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "NamedQuery", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "Queryx", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/jmoiron/sqlx", "Tx", true, "Select", "", "", "Argument[1]", "sql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/jmoiron/sqlx", "", true, "MapScan", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "", true, "SliceScan", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "", true, "StructScan", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "ColScanner", true, "Scan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "Row", true, "MapScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "Row", true, "Scan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "Row", true, "SliceScan", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "Row", true, "StructScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "Rows", true, "MapScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "Rows", true, "SliceScan", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["github.com/jmoiron/sqlx", "Rows", true, "StructScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.jmoiron.sqlx.model.yml b/go/ql/lib/ext/github.com.jmoiron.sqlx.model.yml deleted file mode 100644 index 4936bfd95d9f..000000000000 --- a/go/ql/lib/ext/github.com.jmoiron.sqlx.model.yml +++ /dev/null @@ -1,85 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/jmoiron/sqlx", "", True, "Get", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "", True, "GetContext", "", "", "Argument[2]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "", True, "NamedQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "", True, "NamedQueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "", True, "Select", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "", True, "SelectContext", "", "", "Argument[2]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Conn", True, "GetContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Conn", True, "QueryRowxContext", "", "", "ReturnValue", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Conn", True, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Conn", True, "SelectContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "Get", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "GetContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "NamedQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "NamedQueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "Queryx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "Select", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "SelectContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "Get", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "GetContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "Queryx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "Select", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "NamedStmt", True, "SelectContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "Get", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "GetContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "Queryx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "Select", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Stmt", True, "SelectContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "Get", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "GetContext", "", "", "Argument[1]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "NamedQuery", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "QueryRowx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "QueryRowxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "Queryx", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "QueryxContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "Select", "", "", "Argument[0]", "database", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "SelectContext", "", "", "Argument[1]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/jmoiron/sqlx", "DB", True, "Get", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "MustExec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "NamedExec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "NamedQuery", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "Queryx", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "DB", True, "Select", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "Get", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "MustExec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "NamedExec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "NamedQuery", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "Queryx", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/jmoiron/sqlx", "Tx", True, "Select", "", "", "Argument[1]", "sql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/jmoiron/sqlx", "", True, "MapScan", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "", True, "SliceScan", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "", True, "StructScan", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "ColScanner", True, "Scan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "Row", True, "MapScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "Row", True, "Scan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "Row", True, "SliceScan", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "Row", True, "StructScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "Rows", True, "MapScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "Rows", True, "SliceScan", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["github.com/jmoiron/sqlx", "Rows", True, "StructScan", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.joho.godotenv.model.json b/go/ql/lib/ext/github.com.joho.godotenv.model.json new file mode 100644 index 000000000000..408a81c4f9f5 --- /dev/null +++ b/go/ql/lib/ext/github.com.joho.godotenv.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/joho/godotenv", "", false, "Parse", "", "", "ReturnValue", "environment", "manual"], + ["github.com/joho/godotenv", "", false, "Read", "", "", "ReturnValue", "environment", "manual"], + ["github.com/joho/godotenv", "", false, "Unmarshal", "", "", "ReturnValue", "environment", "manual"], + ["github.com/joho/godotenv", "", false, "UnmarshalBytes", "", "", "ReturnValue", "environment", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.joho.godotenv.model.yml b/go/ql/lib/ext/github.com.joho.godotenv.model.yml deleted file mode 100644 index 8bd62c5dd0b1..000000000000 --- a/go/ql/lib/ext/github.com.joho.godotenv.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/joho/godotenv", "", False, "Parse", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/joho/godotenv", "", False, "Read", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/joho/godotenv", "", False, "Unmarshal", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/joho/godotenv", "", False, "UnmarshalBytes", "", "", "ReturnValue", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.json-iterator.go.model.json b/go/ql/lib/ext/github.com.json-iterator.go.model.json new file mode 100644 index 000000000000..c594c013efd9 --- /dev/null +++ b/go/ql/lib/ext/github.com.json-iterator.go.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/json-iterator/go", "", false, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["github.com/json-iterator/go", "", false, "UnmarshalFromString", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["github.com/json-iterator/go", "API", true, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["github.com/json-iterator/go", "API", true, "UnmarshalFromString", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.json-iterator.go.model.yml b/go/ql/lib/ext/github.com.json-iterator.go.model.yml deleted file mode 100644 index bf974a171097..000000000000 --- a/go/ql/lib/ext/github.com.json-iterator.go.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/json-iterator/go", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["github.com/json-iterator/go", "", False, "UnmarshalFromString", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["github.com/json-iterator/go", "API", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["github.com/json-iterator/go", "API", True, "UnmarshalFromString", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.kataras.iris.context.model.json b/go/ql/lib/ext/github.com.kataras.iris.context.model.json new file mode 100644 index 000000000000..04ee0bcc72ca --- /dev/null +++ b/go/ql/lib/ext/github.com.kataras.iris.context.model.json @@ -0,0 +1,28 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["iris-context", "github.com/kataras/iris/context"], + ["iris-context", "github.com/kataras/iris/server/web/context"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:iris-context", "Context", true, "SendFile", "", "", "Argument[0]", "path-injection", "manual"], + ["group:iris-context", "Context", true, "ServeFile", "", "", "Argument[0]", "path-injection", "manual"], + ["group:iris-context", "Context", true, "SendFileWithRate", "", "", "Argument[0]", "path-injection", "manual"], + ["group:iris-context", "Context", true, "ServeFileWithRate", "", "", "Argument[0]", "path-injection", "manual"], + ["group:iris-context", "Context", true, "UploadFormFiles", "", "", "Argument[0]", "path-injection", "manual"], + ["group:iris-context", "Context", true, "SaveFormFile", "", "", "Argument[1]", "path-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.kataras.iris.context.model.yml b/go/ql/lib/ext/github.com.kataras.iris.context.model.yml deleted file mode 100644 index 5b5b7e793e2e..000000000000 --- a/go/ql/lib/ext/github.com.kataras.iris.context.model.yml +++ /dev/null @@ -1,17 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["iris-context", "github.com/kataras/iris/context"] - - ["iris-context", "github.com/kataras/iris/server/web/context"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:iris-context", "Context", True, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["group:iris-context", "Context", True, "ServeFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["group:iris-context", "Context", True, "SendFileWithRate", "", "", "Argument[0]", "path-injection", "manual"] - - ["group:iris-context", "Context", True, "ServeFileWithRate", "", "", "Argument[0]", "path-injection", "manual"] - - ["group:iris-context", "Context", True, "UploadFormFiles", "", "", "Argument[0]", "path-injection", "manual"] - - ["group:iris-context", "Context", True, "SaveFormFile", "", "", "Argument[1]", "path-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.json b/go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.json new file mode 100644 index 000000000000..e4ba102c2db1 --- /dev/null +++ b/go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/kataras/iris/middleware/jwt", "", false, "NewSigner", "", "", "Argument[1]", "credentials-key", "manual"], + ["github.com/kataras/iris/middleware/jwt", "Signer", true, "Key", "", "", "", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.yml b/go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.yml deleted file mode 100644 index 5bcce412fd42..000000000000 --- a/go/ql/lib/ext/github.com.kataras.iris.middleware.jwt.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/kataras/iris/middleware/jwt", "", False, "NewSigner", "", "", "Argument[1]", "credentials-key", "manual"] - - ["github.com/kataras/iris/middleware/jwt", "Signer", True, "Key", "", "", "", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.kataras.jwt.model.json b/go/ql/lib/ext/github.com.kataras.jwt.model.json new file mode 100644 index 000000000000..b3ec9019cda4 --- /dev/null +++ b/go/ql/lib/ext/github.com.kataras.jwt.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/kataras/jwt", "Keys", true, "Register", "", "", "Argument[3]", "credentials-key", "manual"], + ["github.com/kataras/jwt", "", false, "Sign", "", "", "Argument[1]", "credentials-key", "manual"], + ["github.com/kataras/jwt", "", false, "SignEncrypted", "", "", "Argument[1]", "credentials-key", "manual"], + ["github.com/kataras/jwt", "", false, "SignEncryptedWithHeader", "", "", "Argument[1]", "credentials-key", "manual"], + ["github.com/kataras/jwt", "", false, "SignWithHeader", "", "", "Argument[1]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.kataras.jwt.model.yml b/go/ql/lib/ext/github.com.kataras.jwt.model.yml deleted file mode 100644 index 3ecb1e0e577a..000000000000 --- a/go/ql/lib/ext/github.com.kataras.jwt.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/kataras/jwt", "Keys", True, "Register", "", "", "Argument[3]", "credentials-key", "manual"] - - ["github.com/kataras/jwt", "", False, "Sign", "", "", "Argument[1]", "credentials-key", "manual"] - - ["github.com/kataras/jwt", "", False, "SignEncrypted", "", "", "Argument[1]", "credentials-key", "manual"] - - ["github.com/kataras/jwt", "", False, "SignEncryptedWithHeader", "", "", "Argument[1]", "credentials-key", "manual"] - - ["github.com/kataras/jwt", "", False, "SignWithHeader", "", "", "Argument[1]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.json b/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.json new file mode 100644 index 000000000000..a3cc0682a0b7 --- /dev/null +++ b/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/kelseyhightower/envconfig", "", false, "CheckDisallowed", "", "", "Argument[1]", "environment", "manual"], + ["github.com/kelseyhightower/envconfig", "", false, "MustProcess", "", "", "Argument[1]", "environment", "manual"], + ["github.com/kelseyhightower/envconfig", "", false, "Process", "", "", "Argument[1]", "environment", "manual"], + ["github.com/kelseyhightower/envconfig", "", false, "Usage", "", "", "Argument[1]", "environment", "manual"], + ["github.com/kelseyhightower/envconfig", "", false, "Usagef", "", "", "Argument[1]", "environment", "manual"], + ["github.com/kelseyhightower/envconfig", "", false, "Usaget", "", "", "Argument[1]", "environment", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml b/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml deleted file mode 100644 index 3b1ba531849e..000000000000 --- a/go/ql/lib/ext/github.com.kelseyhightower.envconfig.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/kelseyhightower/envconfig", "", False, "CheckDisallowed", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "MustProcess", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Process", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Usage", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Usagef", "", "", "Argument[1]", "environment", "manual"] - - ["github.com/kelseyhightower/envconfig", "", False, "Usaget", "", "", "Argument[1]", "environment", "manual"] diff --git a/go/ql/lib/ext/github.com.labstack.echo.model.json b/go/ql/lib/ext/github.com.labstack.echo.model.json new file mode 100644 index 000000000000..1ab7cd4d4e3d --- /dev/null +++ b/go/ql/lib/ext/github.com.labstack.echo.model.json @@ -0,0 +1,47 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // path-injection + ["github.com/labstack/echo", "Context", true, "Attachment", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/labstack/echo", "Context", true, "File", "", "", "Argument[0]", "path-injection", "manual"], + // url-redirection + ["github.com/labstack/echo", "Context", true, "Redirect", "", "", "Argument[1]", "url-redirection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/labstack/echo", "Context", true, "Bind", "", "", "Argument[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "Param", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "ParamValues", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "QueryParam", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "QueryParams", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "QueryString", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "FormValue", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "FormParams", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "FormFile", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "MultipartForm", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/labstack/echo", "Context", true, "Cookies", "", "", "ReturnValue[0]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.labstack.echo.model.yml b/go/ql/lib/ext/github.com.labstack.echo.model.yml deleted file mode 100644 index 830360bbdb2d..000000000000 --- a/go/ql/lib/ext/github.com.labstack.echo.model.yml +++ /dev/null @@ -1,33 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # path-injection - - ["github.com/labstack/echo", "Context", True, "Attachment", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/labstack/echo", "Context", True, "File", "", "", "Argument[0]", "path-injection", "manual"] - # url-redirection - - ["github.com/labstack/echo", "Context", True, "Redirect", "", "", "Argument[1]", "url-redirection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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"] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/labstack/echo", "Context", True, "Bind", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "Param", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "ParamValues", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "QueryParam", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "QueryParams", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "QueryString", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "FormValue", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "FormParams", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "FormFile", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "MultipartForm", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/labstack/echo", "Context", True, "Cookies", "", "", "ReturnValue[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.json b/go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.json new file mode 100644 index 000000000000..e4b48553f44a --- /dev/null +++ b/go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/lestrrat-go/jwx/jwk", "", false, "New", "", "", "Argument[0]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.yml b/go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.yml deleted file mode 100644 index ed2b3f310539..000000000000 --- a/go/ql/lib/ext/github.com.lestrrat-go.jwx.jwk.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/lestrrat-go/jwx/jwk", "", False, "New", "", "", "Argument[0]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.lestrrat-go.jwx.model.json b/go/ql/lib/ext/github.com.lestrrat-go.jwx.model.json new file mode 100644 index 000000000000..eed50fae584a --- /dev/null +++ b/go/ql/lib/ext/github.com.lestrrat-go.jwx.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/lestrrat-go/jwx", "", false, "New", "", "", "Argument[0]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.lestrrat-go.jwx.model.yml b/go/ql/lib/ext/github.com.lestrrat-go.jwx.model.yml deleted file mode 100644 index 78162bf4855a..000000000000 --- a/go/ql/lib/ext/github.com.lestrrat-go.jwx.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/lestrrat-go/jwx", "", False, "New", "", "", "Argument[0]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.json b/go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.json new file mode 100644 index 000000000000..3a5ba49a0f3d --- /dev/null +++ b/go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/lestrrat-go/libxml2/parser", "Parser", true, "Parse", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/lestrrat-go/libxml2/parser", "Parser", true, "ParseReader", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/lestrrat-go/libxml2/parser", "Parser", true, "ParseString", "", "", "Argument[0]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.yml b/go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.yml deleted file mode 100644 index 90a6b381b640..000000000000 --- a/go/ql/lib/ext/github.com.lestrrat-go.libxml2.parser.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/lestrrat-go/libxml2/parser", "Parser", True, "Parse", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/lestrrat-go/libxml2/parser", "Parser", True, "ParseReader", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/lestrrat-go/libxml2/parser", "Parser", True, "ParseString", "", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.json b/go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.json new file mode 100644 index 000000000000..6053c460fc1b --- /dev/null +++ b/go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/lestrrat/go-jwx/jwk", "", false, "New", "", "", "Argument[0]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.yml b/go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.yml deleted file mode 100644 index e4d7fe43de69..000000000000 --- a/go/ql/lib/ext/github.com.lestrrat.go-jwx.jwk.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/lestrrat/go-jwx/jwk", "", False, "New", "", "", "Argument[0]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.masterminds.squirrel.model.json b/go/ql/lib/ext/github.com.masterminds.squirrel.model.json new file mode 100644 index 000000000000..c5a1144c9a94 --- /dev/null +++ b/go/ql/lib/ext/github.com.masterminds.squirrel.model.json @@ -0,0 +1,94 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["squirrel", "github.com/Masterminds/squirrel"], + ["squirrel", "gopkg.in/Masterminds/squirrel"], + ["squirrel", "github.com/lann/squirrel"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:squirrel", "", true, "QueryContextWith", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "", true, "QueryRowContextWith", "", "", "ReturnValue", "database", "manual"], + ["group:squirrel", "", true, "QueryRowWith", "", "", "ReturnValue", "database", "manual"], + ["group:squirrel", "", true, "QueryWith", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "DeleteBuilder", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "DeleteBuilder", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "DeleteBuilder", true, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "InsertBuilder", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "InsertBuilder", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "InsertBuilder", true, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "InsertBuilder", true, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "QueryRower", true, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "QueryRowerContext", true, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "Queryer", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "QueryerContext", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "SelectBuilder", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "SelectBuilder", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "SelectBuilder", true, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "SelectBuilder", true, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "StdSql", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "StdSql", true, "QueryRow", "", "", "ReturnValue", "database", "manual"], + ["group:squirrel", "StdSqlCtx", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "StdSqlCtx", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"], + ["group:squirrel", "UpdateBuilder", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "UpdateBuilder", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "UpdateBuilder", true, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"], + ["group:squirrel", "UpdateBuilder", true, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:squirrel", "", false, "Delete", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "", false, "Expr", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "", false, "Insert", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "", false, "Select", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "", false, "Update", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "DeleteBuilder", true, "From", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "DeleteBuilder", true, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "DeleteBuilder", true, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "DeleteBuilder", true, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"], + // DeleteBuilder.Where has to be modeled in QL to avoid FPs when a non-string argument is used + ["group:squirrel", "InsertBuilder", true, "Columns", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "InsertBuilder", true, "Into", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "InsertBuilder", true, "Options", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "InsertBuilder", true, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "InsertBuilder", true, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "CrossJoin", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "Column", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "Columns", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "SelectBuilder", true, "From", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "InnerJoin", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "LeftJoin", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "Options", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "SelectBuilder", true, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "SelectBuilder", true, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "RightJoin", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "SelectBuilder", true, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"], + // SelectBuilder.Where has to be modeled in QL to avoid FPs when a non-string argument is used + ["group:squirrel", "UpdateBuilder", true, "From", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "UpdateBuilder", true, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["group:squirrel", "UpdateBuilder", true, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "UpdateBuilder", true, "Set", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "UpdateBuilder", true, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:squirrel", "UpdateBuilder", true, "Table", "", "", "Argument[0]", "sql-injection", "manual"] + ] + } + ] +} +// UpdateBuilder.Where has to be modeled in QL to avoid FPs when a non-string argument is used +// There are summary models for Row.Scan, RowScanner.Scan, {Insert,Delete,Select,Update}Builder.Scan and {Insert,Delete,Select,Update}Builder.ScanContext modeled in QL diff --git a/go/ql/lib/ext/github.com.masterminds.squirrel.model.yml b/go/ql/lib/ext/github.com.masterminds.squirrel.model.yml deleted file mode 100644 index 3544f0ac3cfd..000000000000 --- a/go/ql/lib/ext/github.com.masterminds.squirrel.model.yml +++ /dev/null @@ -1,84 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["squirrel", "github.com/Masterminds/squirrel"] - - ["squirrel", "gopkg.in/Masterminds/squirrel"] - - ["squirrel", "github.com/lann/squirrel"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:squirrel", "", True, "QueryContextWith", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "", True, "QueryRowContextWith", "", "", "ReturnValue", "database", "manual"] - - ["group:squirrel", "", True, "QueryRowWith", "", "", "ReturnValue", "database", "manual"] - - ["group:squirrel", "", True, "QueryWith", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "DeleteBuilder", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "DeleteBuilder", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "DeleteBuilder", True, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "InsertBuilder", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "InsertBuilder", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "InsertBuilder", True, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "InsertBuilder", True, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "QueryRower", True, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "QueryRowerContext", True, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "Queryer", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "QueryerContext", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "SelectBuilder", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "SelectBuilder", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "SelectBuilder", True, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "SelectBuilder", True, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "StdSql", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "StdSql", True, "QueryRow", "", "", "ReturnValue", "database", "manual"] - - ["group:squirrel", "StdSqlCtx", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "StdSqlCtx", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "QueryRow", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "QueryRowContext", "", "", "ReturnValue[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:squirrel", "", False, "Delete", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "", False, "Expr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "", False, "Insert", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "", False, "Select", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "", False, "Update", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - - ["group:squirrel", "DeleteBuilder", True, "From", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "DeleteBuilder", True, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "DeleteBuilder", True, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "DeleteBuilder", True, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"] - # DeleteBuilder.Where has to be modeled in QL to avoid FPs when a non-string argument is used - - - ["group:squirrel", "InsertBuilder", True, "Columns", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "InsertBuilder", True, "Into", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "InsertBuilder", True, "Options", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "InsertBuilder", True, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "InsertBuilder", True, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"] - - - ["group:squirrel", "SelectBuilder", True, "CrossJoin", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "Column", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "Columns", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "SelectBuilder", True, "From", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "InnerJoin", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "LeftJoin", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "Options", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "SelectBuilder", True, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "SelectBuilder", True, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "RightJoin", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "SelectBuilder", True, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"] - # SelectBuilder.Where has to be modeled in QL to avoid FPs when a non-string argument is used - - - ["group:squirrel", "UpdateBuilder", True, "From", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["group:squirrel", "UpdateBuilder", True, "Prefix", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "Set", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "Suffix", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:squirrel", "UpdateBuilder", True, "Table", "", "", "Argument[0]", "sql-injection", "manual"] - # UpdateBuilder.Where has to be modeled in QL to avoid FPs when a non-string argument is used - - # There are summary models for Row.Scan, RowScanner.Scan, {Insert,Delete,Select,Update}Builder.Scan and {Insert,Delete,Select,Update}Builder.ScanContext modeled in QL diff --git a/go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.json b/go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.json new file mode 100644 index 000000000000..ab28a8100083 --- /dev/null +++ b/go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.json @@ -0,0 +1,26 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["gokogiri/xml", "github.com/moovweb/gokogiri/xml"], + ["gokogiri/xml", "github.com/jbowtie/gokogiri/xml"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:gokogiri/xml", "Node", true, "Search", "", "", "Argument[0]", "xpath-injection", "manual"], + ["group:gokogiri/xml", "Node", true, "SearchWithVariables", "", "", "Argument[0]", "xpath-injection", "manual"], + ["group:gokogiri/xml", "Node", true, "EvalXPath", "", "", "Argument[0]", "xpath-injection", "manual"], + ["group:gokogiri/xml", "Node", true, "EvalXPathAsBoolean", "", "", "Argument[0]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.yml b/go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.yml deleted file mode 100644 index e3c3cefb79f2..000000000000 --- a/go/ql/lib/ext/github.com.moovweb.gokogiri.xml.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["gokogiri/xml", "github.com/moovweb/gokogiri/xml"] - - ["gokogiri/xml", "github.com/jbowtie/gokogiri/xml"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:gokogiri/xml", "Node", True, "Search", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["group:gokogiri/xml", "Node", True, "SearchWithVariables", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["group:gokogiri/xml", "Node", True, "EvalXPath", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["group:gokogiri/xml", "Node", True, "EvalXPathAsBoolean", "", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.json b/go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.json new file mode 100644 index 000000000000..00ee60162715 --- /dev/null +++ b/go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.json @@ -0,0 +1,23 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["gokogiri/xpath", "github.com/moovweb/gokogiri/xpath"], + ["gokogiri/xpath", "github.com/jbowtie/gokogiri/xpath"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:gokogiri/xpath", "", false, "Compile", "", "", "Argument[0]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.yml b/go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.yml deleted file mode 100644 index 144f34e9dfc8..000000000000 --- a/go/ql/lib/ext/github.com.moovweb.gokogiri.xpath.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["gokogiri/xpath", "github.com/moovweb/gokogiri/xpath"] - - ["gokogiri/xpath", "github.com/jbowtie/gokogiri/xpath"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:gokogiri/xpath", "", False, "Compile", "", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.json b/go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.json new file mode 100644 index 000000000000..e6dc437071b9 --- /dev/null +++ b/go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/ory/fosite/token/jwt", "Token", true, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"], + ["github.com/ory/fosite/token/jwt", "SigningMethod", true, "Sign", "", "", "Argument[1]", "credentials-key", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.yml b/go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.yml deleted file mode 100644 index 191fdea2fb21..000000000000 --- a/go/ql/lib/ext/github.com.ory.fosite.token.jwt.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/ory/fosite/token/jwt", "Token", True, "SignedString", "", "", "Argument[0]", "credentials-key", "manual"] - - ["github.com/ory/fosite/token/jwt", "SigningMethod", True, "Sign", "", "", "Argument[1]", "credentials-key", "manual"] diff --git a/go/ql/lib/ext/github.com.revel.revel.model.json b/go/ql/lib/ext/github.com.revel.revel.model.json new file mode 100644 index 000000000000..2b393329367b --- /dev/null +++ b/go/ql/lib/ext/github.com.revel.revel.model.json @@ -0,0 +1,81 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["revel", "github.com/revel/revel"], + ["revel", "github.com/robfig/revel"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:revel", "Controller", true, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"] // It is currently assumed that a tainted `value` in `Redirect(url, value)`, which calls `Sprintf(url, value)` internally, cannot lead to an open redirect vulnerability. + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:revel", "Controller", true, "Params", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "Header", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "ContentType", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "AcceptLanguages", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "Locale", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "URL", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "Form", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "MultipartForm", "", "", "", "remote", "manual"], + ["group:revel", "RouteMatch", true, "Params", "", "", "", "remote", "manual"], + ["group:revel", "Request", true, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:revel", "Request", true, "FormValue", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "Request", true, "GetBody", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "Request", true, "GetForm", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:revel", "Request", true, "GetHttpHeader", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "Request", true, "GetMultipartForm", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:revel", "Request", true, "GetQuery", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "Request", true, "GetRequestURI", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "Request", true, "MultipartReader", "", "", "ReturnValue[0]", "remote", "manual"], + ["group:revel", "Request", true, "PostFormValue", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "Request", true, "Referer", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "Request", true, "UserAgent", "", "", "ReturnValue", "remote", "manual"], + ["group:revel", "ServerWebSocket", true, "MessageReceive", "", "", "Argument[0]", "remote", "manual"], + ["group:revel", "ServerWebSocket", true, "MessageReceiveJSON", "", "", "Argument[0]", "remote", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:revel", "Controller", true, "RenderFileName", "", "", "Argument[0]", "path-injection", "manual"] // we model this as a path-injection sink rather than extending HTTP::ResponseBody as this will usually mean exposing a user-controlled file rather than the actual contents being user-controlled. + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:revel", "Params", true, "Bind", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:revel", "Params", true, "BindJSON", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["group:revel", "RevelHeader", true, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"], + ["group:revel", "RevelHeader", true, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:revel", "RevelHeader", true, "GetAll", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:revel", "RevelHeader", true, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"], + ["group:revel", "RevelHeader", true, "SetCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["group:revel", "ServerCookie", true, "GetValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:revel", "ServerMultipartForm", true, "GetFiles", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["group:revel", "ServerMultipartForm", true, "GetValues", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.revel.revel.model.yml b/go/ql/lib/ext/github.com.revel.revel.model.yml deleted file mode 100644 index acd12f42b1e0..000000000000 --- a/go/ql/lib/ext/github.com.revel.revel.model.yml +++ /dev/null @@ -1,58 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["revel", "github.com/revel/revel"] - - ["revel", "github.com/robfig/revel"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:revel", "Controller", True, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"] # It is currently assumed that a tainted `value` in `Redirect(url, value)`, which calls `Sprintf(url, value)` internally, cannot lead to an open redirect vulnerability. - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:revel", "Controller", True, "Params", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "Header", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "ContentType", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "AcceptLanguages", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "Locale", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "URL", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "Form", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "MultipartForm", "", "", "", "remote", "manual"] - - ["group:revel", "RouteMatch", True, "Params", "", "", "", "remote", "manual"] - - ["group:revel", "Request", True, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:revel", "Request", True, "FormValue", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "Request", True, "GetBody", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "Request", True, "GetForm", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:revel", "Request", True, "GetHttpHeader", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "Request", True, "GetMultipartForm", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:revel", "Request", True, "GetQuery", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "Request", True, "GetRequestURI", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "Request", True, "MultipartReader", "", "", "ReturnValue[0]", "remote", "manual"] - - ["group:revel", "Request", True, "PostFormValue", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "Request", True, "Referer", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "Request", True, "UserAgent", "", "", "ReturnValue", "remote", "manual"] - - ["group:revel", "ServerWebSocket", True, "MessageReceive", "", "", "Argument[0]", "remote", "manual"] - - ["group:revel", "ServerWebSocket", True, "MessageReceiveJSON", "", "", "Argument[0]", "remote", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:revel", "Controller", True, "RenderFileName", "", "", "Argument[0]", "path-injection", "manual"] # we model this as a path-injection sink rather than extending HTTP::ResponseBody as this will usually mean exposing a user-controlled file rather than the actual contents being user-controlled. - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:revel", "Params", True, "Bind", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:revel", "Params", True, "BindJSON", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["group:revel", "RevelHeader", True, "Add", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] - - ["group:revel", "RevelHeader", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:revel", "RevelHeader", True, "GetAll", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:revel", "RevelHeader", True, "Set", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] - - ["group:revel", "RevelHeader", True, "SetCookie", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["group:revel", "ServerCookie", True, "GetValue", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:revel", "ServerMultipartForm", True, "GetFiles", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["group:revel", "ServerMultipartForm", True, "GetValues", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.rqlite.gorqlite.model.json b/go/ql/lib/ext/github.com.rqlite.gorqlite.model.json new file mode 100644 index 000000000000..7246363cdb02 --- /dev/null +++ b/go/ql/lib/ext/github.com.rqlite.gorqlite.model.json @@ -0,0 +1,73 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["gorqlite", "github.com/kanikanema/gorqlite"], + ["gorqlite", "github.com/rqlite/gorqlite"], + ["gorqlite", "github.com/raindog308/gorqlite"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:gorqlite", "Connection", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorqlite", "Connection", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorqlite", "Connection", true, "QueryOne", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorqlite", "Connection", true, "QueryOneContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorqlite", "Connection", true, "QueryOneParameterized", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorqlite", "Connection", true, "QueryOneParameterizedContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorqlite", "Connection", true, "QueryParameterized", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorqlite", "Connection", true, "QueryParameterizedContext", "", "", "ReturnValue[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:gorqlite", "Connection", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueryOne", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueryOneContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueryOneParameterized", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueryOneParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueryParameterized", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueryParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "Queue", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueueContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueueOne", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueueOneContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueueOneParameterized", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueueOneParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueueParameterized", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "QueueParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "Write", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "WriteContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "WriteOne", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "WriteOneContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "WriteOneParameterized", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "WriteOneParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "WriteParameterized", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorqlite", "Connection", true, "WriteParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:gorqlite", "QueryResult", true, "Map", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["group:gorqlite", "QueryResult", true, "Slice", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.rqlite.gorqlite.model.yml b/go/ql/lib/ext/github.com.rqlite.gorqlite.model.yml deleted file mode 100644 index e65050f8aa24..000000000000 --- a/go/ql/lib/ext/github.com.rqlite.gorqlite.model.yml +++ /dev/null @@ -1,54 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["gorqlite", "github.com/kanikanema/gorqlite"] - - ["gorqlite", "github.com/rqlite/gorqlite"] - - ["gorqlite", "github.com/raindog308/gorqlite"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:gorqlite", "Connection", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorqlite", "Connection", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOne", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOneContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOneParameterized", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOneParameterizedContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorqlite", "Connection", True, "QueryParameterized", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorqlite", "Connection", True, "QueryParameterizedContext", "", "", "ReturnValue[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:gorqlite", "Connection", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOne", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOneContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOneParameterized", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueryOneParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueryParameterized", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueryParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "Queue", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueueContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueueOne", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueueOneContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueueOneParameterized", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueueOneParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueueParameterized", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "QueueParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "Write", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "WriteContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "WriteOne", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "WriteOneContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "WriteOneParameterized", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "WriteOneParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "WriteParameterized", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorqlite", "Connection", True, "WriteParameterizedContext", "", "", "Argument[1]", "sql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:gorqlite", "QueryResult", True, "Map", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["group:gorqlite", "QueryResult", True, "Slice", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.json b/go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.json new file mode 100644 index 000000000000..a695d3648dd7 --- /dev/null +++ b/go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/santhosh-tekuri/xpathparser", "", false, "Parse", "", "", "Argument[0]", "xpath-injection", "manual"], + ["github.com/santhosh-tekuri/xpathparser", "", false, "MustParse", "", "", "Argument[0]", "xpath-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.yml b/go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.yml deleted file mode 100644 index b99bedf38cc8..000000000000 --- a/go/ql/lib/ext/github.com.santhosh-tekuri.xpathparser.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/santhosh-tekuri/xpathparser", "", False, "Parse", "", "", "Argument[0]", "xpath-injection", "manual"] - - ["github.com/santhosh-tekuri/xpathparser", "", False, "MustParse", "", "", "Argument[0]", "xpath-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.json b/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.json new file mode 100644 index 000000000000..f2a72f59cc29 --- /dev/null +++ b/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/sendgrid/sendgrid-go/helpers/mail", "", false, "NewContent", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml b/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml deleted file mode 100644 index ce8ac14ccfa5..000000000000 --- a/go/ql/lib/ext/github.com.sendgrid.sendgrid-go.helpers.mail.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/sendgrid/sendgrid-go/helpers/mail", "", False, "NewContent", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/github.com.sirupsen.logrus.model.json b/go/ql/lib/ext/github.com.sirupsen.logrus.model.json new file mode 100644 index 000000000000..3350d22dd48c --- /dev/null +++ b/go/ql/lib/ext/github.com.sirupsen.logrus.model.json @@ -0,0 +1,167 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["logrus", "github.com/sirupsen/logrus"], + ["logrus", "github.com/Sirupsen/logrus"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:logrus", "", false, "Debug", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "DebugFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Debugln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Error", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "ErrorFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Errorln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "FatalFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Info", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "InfoFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Infoln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Panic", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "PanicFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Panicln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "PrintFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Println", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Trace", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "TraceFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Tracef", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Traceln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Warn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "WarnFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Warnln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Warning", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "WarningFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "Warningln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "WithError", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "", false, "WithFields", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "", false, "WithTime", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Debug", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Debugln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Error", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Errorln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Info", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Infoln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Log", "", "", "Argument[1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Logf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Logln", "", "", "Argument[1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Panic", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Panicln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Println", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Trace", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Tracef", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Traceln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Warn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Warnln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Warning", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "Warningln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "WithError", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "WithFields", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Entry", true, "WithTime", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Debug", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Debugln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Error", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Errorln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Info", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Infoln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Panic", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Panicln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Println", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Warn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Warnln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Warning", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "Warningln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "WithError", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "FieldLogger", true, "WithFields", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Debug", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "DebugFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Debugln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Error", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "ErrorFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Errorln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "FatalFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Info", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "InfoFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Infoln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Log", "", "", "Argument[1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "LogFn", "", "", "Argument[1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Logf", "", "", "Argument[1..2]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Logln", "", "", "Argument[1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Panic", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "PanicFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Panicln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "PrintFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Println", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Trace", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "TraceFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Tracef", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Traceln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Warn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "WarnFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Warnln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Warning", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "WarningFn", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "Warningln", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "WithError", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "WithFields", "", "", "Argument[0]", "log-injection", "manual"], + ["group:logrus", "Logger", true, "WithTime", "", "", "Argument[0]", "log-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.sirupsen.logrus.model.yml b/go/ql/lib/ext/github.com.sirupsen.logrus.model.yml deleted file mode 100644 index 06f9a54622b4..000000000000 --- a/go/ql/lib/ext/github.com.sirupsen.logrus.model.yml +++ /dev/null @@ -1,159 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["logrus", "github.com/sirupsen/logrus"] - - ["logrus", "github.com/Sirupsen/logrus"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:logrus", "", False, "Debug", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "DebugFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Debugln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Error", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "ErrorFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Errorln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "FatalFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Info", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "InfoFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Infoln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Panic", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "PanicFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Panicln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "PrintFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Println", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Trace", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "TraceFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Tracef", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Traceln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Warn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "WarnFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Warnln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Warning", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "WarningFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "Warningln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "WithError", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "", False, "WithFields", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "", False, "WithTime", "", "", "Argument[0]", "log-injection", "manual"] - - - ["group:logrus", "Entry", True, "Debug", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Debugln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Error", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Errorln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Info", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Infoln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Log", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Logf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Logln", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Panic", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Panicln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Println", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Trace", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Tracef", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Traceln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Warn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Warnln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Warning", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "Warningln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "WithError", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "WithFields", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Entry", True, "WithTime", "", "", "Argument[0]", "log-injection", "manual"] - - - ["group:logrus", "FieldLogger", True, "Debug", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Debugln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Error", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Errorln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Info", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Infoln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Panic", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Panicln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Println", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Warn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Warnln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Warning", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "Warningln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "WithError", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "FieldLogger", True, "WithFields", "", "", "Argument[0]", "log-injection", "manual"] - - - ["group:logrus", "Logger", True, "Debug", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "DebugFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Debugln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Error", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "ErrorFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Errorln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "FatalFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Info", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "InfoFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Infoln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Log", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "LogFn", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Logf", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Logln", "", "", "Argument[1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Panic", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "PanicFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Panicln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "PrintFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Println", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Trace", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "TraceFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Tracef", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Traceln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Warn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "WarnFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Warnln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Warning", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "WarningFn", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Warningf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "Warningln", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "WithError", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "WithField", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "WithFields", "", "", "Argument[0]", "log-injection", "manual"] - - ["group:logrus", "Logger", True, "WithTime", "", "", "Argument[0]", "log-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.spf13.afero.model.json b/go/ql/lib/ext/github.com.spf13.afero.model.json new file mode 100644 index 000000000000..00a11d086237 --- /dev/null +++ b/go/ql/lib/ext/github.com.spf13.afero.model.json @@ -0,0 +1,46 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/spf13/afero", "HttpFs", true, "Create", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "HttpFs", true, "Open", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "HttpFs", true, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "HttpFs", true, "Remove", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "HttpFs", true, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "MemMapFs", true, "Create", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "MemMapFs", true, "Open", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "MemMapFs", true, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "MemMapFs", true, "Remove", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "MemMapFs", true, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "MemMapFs", true, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "MemMapFs", true, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "Create", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "Open", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "Remove", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "OsFs", true, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "ReadOnlyFs", true, "Create", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "ReadOnlyFs", true, "Open", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "ReadOnlyFs", true, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "ReadOnlyFs", true, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "ReadOnlyFs", true, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "ReadOnlyFs", true, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "ReadOnlyFs", true, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "RegexpFs", true, "Create", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "RegexpFs", true, "Open", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "RegexpFs", true, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "RegexpFs", true, "Remove", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "RegexpFs", true, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "RegexpFs", true, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/spf13/afero", "RegexpFs", true, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.spf13.afero.model.yml b/go/ql/lib/ext/github.com.spf13.afero.model.yml deleted file mode 100644 index 2ddab6ef43bb..000000000000 --- a/go/ql/lib/ext/github.com.spf13.afero.model.yml +++ /dev/null @@ -1,39 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/spf13/afero", "HttpFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "HttpFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "MemMapFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "OsFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", True, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", True, "ReadlinkIfPossible", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "ReadOnlyFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", True, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", True, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", True, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", True, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", True, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", True, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/spf13/afero", "RegexpFs", True, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] diff --git a/go/ql/lib/ext/github.com.uptrace.bun.model.json b/go/ql/lib/ext/github.com.uptrace.bun.model.json new file mode 100644 index 000000000000..eaec77b34913 --- /dev/null +++ b/go/ql/lib/ext/github.com.uptrace.bun.model.json @@ -0,0 +1,102 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/uptrace/bun", "DB", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/uptrace/bun", "DB", true, "QueryRow", "", "", "ReturnValue", "database", "manual"], + ["github.com/uptrace/bun", "IDB", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/uptrace/bun", "IDB", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"], + // - ["github.com/uptrace/bun", "RawQuery", True, "Exec", "", "", "Argument[0]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet + // - ["github.com/uptrace/bun", "RawQuery", True, "Scan", "", "", "Argument[0]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet + // - ["github.com/uptrace/bun", "SelectQuery", True, "Exec", "", "", "Argument[0]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet + ["github.com/uptrace/bun", "SelectQuery", true, "Model", "", "", "Argument[0]", "database", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "Rows", "", "", "ReturnValue[0]", "database", "manual"], + // - ["github.com/uptrace/bun", "SelectQuery", True, "Scan", "", "", "Argument[1]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet + // - ["github.com/uptrace/bun", "SelectQuery", True, "ScanAndCount", "", "", "Argument[1]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet + ["github.com/uptrace/bun", "Tx", true, "Query", "", "", "ReturnValue[0]", "database", "manual"], + ["github.com/uptrace/bun", "Tx", true, "QueryRow", "", "", "ReturnValue", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/uptrace/bun", "", false, "NewRawQuery", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "AddColumnQuery", true, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "AddColumnQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "AddColumnQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "NewRaw", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "Conn", true, "Raw", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateIndexQuery", true, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateIndexQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateIndexQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateIndexQuery", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateIndexQuery", true, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateTableQuery", true, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateTableQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "CreateTableQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "NewRaw", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "Query", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DB", true, "Raw", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DeleteQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DeleteQuery", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DeleteQuery", true, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DropColumnQuery", true, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DropColumnQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DropColumnQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DropTableQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "DropTableQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "InsertQuery", true, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "InsertQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "InsertQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "InsertQuery", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "InsertQuery", true, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "MergeQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "MergeQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "RawQuery", true, "NewRaw", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "DistinctOn", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "For", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "GroupExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "Having", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "OrderExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "SelectQuery", true, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "TruncateTableQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "UpdateQuery", true, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "UpdateQuery", true, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "UpdateQuery", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["github.com/uptrace/bun", "UpdateQuery", true, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"] + ] + } + ] +} +// - addsTo: +// pack: codeql/go-all +// extensible: summaryModel +// data: +// - ["github.com/uptrace/bun", "DB", True, "ScanRow", "", "", "Argument[1]", "Argument[2].ArrayElement", "taint", "manual"] # Implemented in QL because variadic arguments as outputs aren't supported in this format yet +// - ["github.com/uptrace/bun", "DB", True, "ScanRows", "", "", "Argument[1]", "Argument[2].ArrayElement", "taint", "manual"] # Implemented in QL because variadic arguments as outputs aren't supported in this format yet diff --git a/go/ql/lib/ext/github.com.uptrace.bun.model.yml b/go/ql/lib/ext/github.com.uptrace.bun.model.yml deleted file mode 100644 index 45af9c15a44c..000000000000 --- a/go/ql/lib/ext/github.com.uptrace.bun.model.yml +++ /dev/null @@ -1,91 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/uptrace/bun", "DB", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/uptrace/bun", "DB", True, "QueryRow", "", "", "ReturnValue", "database", "manual"] - - ["github.com/uptrace/bun", "IDB", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/uptrace/bun", "IDB", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - # - ["github.com/uptrace/bun", "RawQuery", True, "Exec", "", "", "Argument[0]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet - # - ["github.com/uptrace/bun", "RawQuery", True, "Scan", "", "", "Argument[0]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet - # - ["github.com/uptrace/bun", "SelectQuery", True, "Exec", "", "", "Argument[0]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet - - ["github.com/uptrace/bun", "SelectQuery", True, "Model", "", "", "Argument[0]", "database", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "Rows", "", "", "ReturnValue[0]", "database", "manual"] - # - ["github.com/uptrace/bun", "SelectQuery", True, "Scan", "", "", "Argument[1]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet - # - ["github.com/uptrace/bun", "SelectQuery", True, "ScanAndCount", "", "", "Argument[1]", "database", "manual"] # Implemented in QL because variadic arguments as sources aren't supported in this format yet - - ["github.com/uptrace/bun", "Tx", True, "Query", "", "", "ReturnValue[0]", "database", "manual"] - - ["github.com/uptrace/bun", "Tx", True, "QueryRow", "", "", "ReturnValue", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/uptrace/bun", "", False, "NewRawQuery", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "AddColumnQuery", True, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "AddColumnQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "AddColumnQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "NewRaw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "Conn", True, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateIndexQuery", True, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateIndexQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateIndexQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateIndexQuery", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateIndexQuery", True, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateTableQuery", True, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateTableQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "CreateTableQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "ExecContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "NewRaw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "Query", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "QueryRow", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "PrepareContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "QueryContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "QueryRowContext", "", "", "Argument[1]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DB", True, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DeleteQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DeleteQuery", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DeleteQuery", True, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DropColumnQuery", True, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DropColumnQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DropColumnQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DropTableQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "DropTableQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "InsertQuery", True, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "InsertQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "InsertQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "InsertQuery", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "InsertQuery", True, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "MergeQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "MergeQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "RawQuery", True, "NewRaw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "ColumnExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "DistinctOn", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "For", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "GroupExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "Having", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "OrderExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "SelectQuery", True, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "TruncateTableQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "UpdateQuery", True, "ModelTableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "UpdateQuery", True, "TableExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "UpdateQuery", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["github.com/uptrace/bun", "UpdateQuery", True, "WhereOr", "", "", "Argument[0]", "sql-injection", "manual"] - # - addsTo: - # pack: codeql/go-all - # extensible: summaryModel - # data: - # - ["github.com/uptrace/bun", "DB", True, "ScanRow", "", "", "Argument[1]", "Argument[2].ArrayElement", "taint", "manual"] # Implemented in QL because variadic arguments as outputs aren't supported in this format yet - # - ["github.com/uptrace/bun", "DB", True, "ScanRows", "", "", "Argument[1]", "Argument[2].ArrayElement", "taint", "manual"] # Implemented in QL because variadic arguments as outputs aren't supported in this format yet diff --git a/go/ql/lib/ext/github.com.valyala.fasthttp.model.json b/go/ql/lib/ext/github.com.valyala.fasthttp.model.json new file mode 100644 index 000000000000..ba0077ebde8d --- /dev/null +++ b/go/ql/lib/ext/github.com.valyala.fasthttp.model.json @@ -0,0 +1,121 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // request-forgery + ["github.com/valyala/fasthttp", "", false, "Get", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "", false, "GetDeadline", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "", false, "GetTimeout", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "", false, "Post", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "", false, "Dial", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + ["github.com/valyala/fasthttp", "", false, "DialDualStack", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + ["github.com/valyala/fasthttp", "", false, "DialDualStackTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + ["github.com/valyala/fasthttp", "", false, "DialTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + ["github.com/valyala/fasthttp", "Client", true, "Get", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Client", true, "GetDeadline", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Client", true, "GetTimeout", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Client", true, "Post", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "HostClient", true, "Get", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "HostClient", true, "GetDeadline", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "HostClient", true, "GetTimeout", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "HostClient", true, "Post", "", "", "Argument[1]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "SetHost", "", "", "Argument[0]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "SetHostBytes", "", "", "Argument[0]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "SetRequestURI", "", "", "Argument[0]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "SetRequestURIBytes", "", "", "Argument[0]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "SetURI", "", "", "Argument[0]", "request-forgery", "manual"], + ["github.com/valyala/fasthttp", "TCPDialer", true, "Dial", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + ["github.com/valyala/fasthttp", "TCPDialer", true, "DialDualStack", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + ["github.com/valyala/fasthttp", "TCPDialer", true, "DialDualStackTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + ["github.com/valyala/fasthttp", "TCPDialer", true, "DialTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"], + // path-injection + ["github.com/valyala/fasthttp", "", false, "SaveMultipartFile", "", "", "Argument[1]", "path-injection", "manual"], + ["github.com/valyala/fasthttp", "", false, "ServeFile", "", "", "Argument[1]", "path-injection", "manual"], + ["github.com/valyala/fasthttp", "", false, "ServeFileBytes", "", "", "Argument[1]", "path-injection", "manual"], + ["github.com/valyala/fasthttp", "", false, "ServeFileBytesUncompressed", "", "", "Argument[1]", "path-injection", "manual"], + ["github.com/valyala/fasthttp", "", false, "ServeFileUncompressed", "", "", "Argument[1]", "path-injection", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "SendFile", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "SendFileBytes", "", "", "Argument[0]", "path-injection", "manual"], + ["github.com/valyala/fasthttp", "Response", true, "SendFile", "", "", "Argument[0]", "path-injection", "manual"], + // url-redirection + ["github.com/valyala/fasthttp", "RequestCtx", true, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "RedirectBytes", "", "", "Argument[0]", "url-redirection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/valyala/fasthttp", "URI", true, "SetHost", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "SetHostBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "Update", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "UpdateBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "Parse", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/valyala/fasthttp", "Args", true, "Peek", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Args", true, "PeekBytes", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Args", true, "PeekMulti", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Args", true, "PeekMultiBytes", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Args", true, "QueryString", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Args", true, "String", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "FullURI", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "LastPathSegment", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "Path", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "PathOriginal", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "QueryString", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "URI", true, "String", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "Body", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "BodyGunzip", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "BodyInflate", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "BodyStream", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "BodyUnbrotli", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "BodyUncompressed", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "ContinueReadBody", "", "", "Argument[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "ContinueReadBodyStream", "", "", "Argument[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "Host", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "ReadBody", "", "", "Argument[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "ReadLimitBody", "", "", "Argument[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "Request", true, "RequestURI", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "Host", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "Path", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "PostBody", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "Referer", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "RequestBodyStream", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "RequestURI", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "String", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestCtx", true, "UserAgent", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "ContentEncoding", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "ContentType", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "CookieBytes", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "Header", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "Host", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "MultipartFormBoundary", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "Peek", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "PeekAll", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "PeekBytes", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "PeekKeys", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "PeekTrailerKeys", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "RawHeaders", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "Referer", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "RequestURI", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "String", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "TrailerHeader", "", "", "ReturnValue[0]", "remote", "manual"], + ["github.com/valyala/fasthttp", "RequestHeader", true, "UserAgent", "", "", "ReturnValue[0]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/github.com.valyala.fasthttp.model.yml b/go/ql/lib/ext/github.com.valyala.fasthttp.model.yml deleted file mode 100644 index 573825276281..000000000000 --- a/go/ql/lib/ext/github.com.valyala.fasthttp.model.yml +++ /dev/null @@ -1,106 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # request-forgery - - ["github.com/valyala/fasthttp", "", False, "Get", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "", False, "GetDeadline", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "", False, "GetTimeout", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "", False, "Post", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "", False, "Dial", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - - ["github.com/valyala/fasthttp", "", False, "DialDualStack", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - - ["github.com/valyala/fasthttp", "", False, "DialDualStackTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - - ["github.com/valyala/fasthttp", "", False, "DialTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - - ["github.com/valyala/fasthttp", "Client", True, "Get", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Client", True, "GetDeadline", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Client", True, "GetTimeout", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Client", True, "Post", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "HostClient", True, "Get", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "HostClient", True, "GetDeadline", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "HostClient", True, "GetTimeout", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "HostClient", True, "Post", "", "", "Argument[1]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "SetHost", "", "", "Argument[0]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "SetHostBytes", "", "", "Argument[0]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "SetRequestURI", "", "", "Argument[0]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "SetRequestURIBytes", "", "", "Argument[0]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "SetURI", "", "", "Argument[0]", "request-forgery", "manual"] - - ["github.com/valyala/fasthttp", "TCPDialer", True, "Dial", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - - ["github.com/valyala/fasthttp", "TCPDialer", True, "DialDualStack", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - - ["github.com/valyala/fasthttp", "TCPDialer", True, "DialDualStackTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - - ["github.com/valyala/fasthttp", "TCPDialer", True, "DialTimeout", "", "", "Argument[0]", "request-forgery[TCP Addr + Port]", "manual"] - # path-injection - - ["github.com/valyala/fasthttp", "", False, "SaveMultipartFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFileBytes", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFileBytesUncompressed", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "", False, "ServeFileUncompressed", "", "", "Argument[1]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "SendFileBytes", "", "", "Argument[0]", "path-injection", "manual"] - - ["github.com/valyala/fasthttp", "Response", True, "SendFile", "", "", "Argument[0]", "path-injection", "manual"] - # url-redirection - - ["github.com/valyala/fasthttp", "RequestCtx", True, "Redirect", "", "", "Argument[0]", "url-redirection", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "RedirectBytes", "", "", "Argument[0]", "url-redirection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/valyala/fasthttp", "URI", True, "SetHost", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "SetHostBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "Update", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "UpdateBytes", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "Parse", "", "", "Argument[0..1]", "Argument[receiver]", "taint", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/valyala/fasthttp", "Args", True, "Peek", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Args", True, "PeekBytes", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Args", True, "PeekMulti", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Args", True, "PeekMultiBytes", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Args", True, "QueryString", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Args", True, "String", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "FullURI", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "LastPathSegment", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "Path", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "PathOriginal", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "QueryString", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "URI", True, "String", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "Body", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "BodyGunzip", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "BodyInflate", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "BodyStream", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "BodyUnbrotli", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "BodyUncompressed", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "ContinueReadBody", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "ContinueReadBodyStream", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "Host", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "ReadBody", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "ReadLimitBody", "", "", "Argument[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "Request", True, "RequestURI", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "Host", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "Path", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "PostBody", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "Referer", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "RequestBodyStream", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "RequestURI", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "String", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestCtx", True, "UserAgent", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "ContentEncoding", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "ContentType", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "CookieBytes", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "Header", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "Host", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "MultipartFormBoundary", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "Peek", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "PeekAll", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "PeekBytes", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "PeekKeys", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "PeekTrailerKeys", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "RawHeaders", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "Referer", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "RequestURI", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "String", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "TrailerHeader", "", "", "ReturnValue[0]", "remote", "manual"] - - ["github.com/valyala/fasthttp", "RequestHeader", True, "UserAgent", "", "", "ReturnValue[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.json b/go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.json new file mode 100644 index 000000000000..660e7f83c813 --- /dev/null +++ b/go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.json @@ -0,0 +1,58 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["go.mongodb.org/mongo-driver/mongo", "Client", true, "Watch", "", "", "ReturnValue[0]", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Aggregate", "", "", "ReturnValue[0]", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Distinct", "", "", "ReturnValue[0]", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Find", "", "", "ReturnValue[0]", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOne", "", "", "ReturnValue", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOneAndDelete", "", "", "ReturnValue", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOneAndReplace", "", "", "ReturnValue", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOneAndUpdate", "", "", "ReturnValue", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Watch", "", "", "ReturnValue[0]", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Database", true, "Aggregate", "", "", "ReturnValue[0]", "database", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Database", true, "Watch", "", "", "ReturnValue[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Aggregate", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "CountDocuments", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "DeleteMany", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "DeleteOne", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Distinct", "", "", "Argument[2]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Find", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOne", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOneAndDelete", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOneAndReplace", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "FindOneAndUpdate", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "ReplaceOne", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "UpdateMany", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "UpdateOne", "", "", "Argument[1]", "nosql-injection", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Collection", true, "Watch", "", "", "Argument[1]", "nosql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["go.mongodb.org/mongo-driver/mongo", "ChangeStream", true, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Cursor", true, "All", "", "", "Argument[receiver]", "Argument[1]", "taint", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "Cursor", true, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "SingleResult", true, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["go.mongodb.org/mongo-driver/mongo", "SingleResult", true, "Raw", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.yml b/go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.yml deleted file mode 100644 index 2b353ebb21d0..000000000000 --- a/go/ql/lib/ext/go.mongodb.org.mongo-driver.mongo.model.yml +++ /dev/null @@ -1,43 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["go.mongodb.org/mongo-driver/mongo", "Client", True, "Watch", "", "", "ReturnValue[0]", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Aggregate", "", "", "ReturnValue[0]", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Distinct", "", "", "ReturnValue[0]", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Find", "", "", "ReturnValue[0]", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOne", "", "", "ReturnValue", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOneAndDelete", "", "", "ReturnValue", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOneAndReplace", "", "", "ReturnValue", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOneAndUpdate", "", "", "ReturnValue", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Watch", "", "", "ReturnValue[0]", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Database", True, "Aggregate", "", "", "ReturnValue[0]", "database", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Database", True, "Watch", "", "", "ReturnValue[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Aggregate", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "CountDocuments", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "DeleteMany", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "DeleteOne", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Distinct", "", "", "Argument[2]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Find", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOne", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOneAndDelete", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOneAndReplace", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "FindOneAndUpdate", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "ReplaceOne", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "UpdateMany", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "UpdateOne", "", "", "Argument[1]", "nosql-injection", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Collection", True, "Watch", "", "", "Argument[1]", "nosql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["go.mongodb.org/mongo-driver/mongo", "ChangeStream", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Cursor", True, "All", "", "", "Argument[receiver]", "Argument[1]", "taint", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "Cursor", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "SingleResult", True, "Decode", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["go.mongodb.org/mongo-driver/mongo", "SingleResult", True, "Raw", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/go.uber.org.zap.model.json b/go/ql/lib/ext/go.uber.org.zap.model.json new file mode 100644 index 000000000000..bd5a3040f760 --- /dev/null +++ b/go/ql/lib/ext/go.uber.org.zap.model.json @@ -0,0 +1,64 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["go.uber.org/zap", "Logger", true, "DPanic", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "Error", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "Fatal", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "Info", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "Named", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "Panic", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "With", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "Logger", true, "WithOptions", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "DPanic", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "DPanicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "DPanicw", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Debug", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Debugw", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Error", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Errorw", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Fatalw", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Info", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Infow", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Named", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Panic", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Panicw", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Warn", "", "", "Argument[0]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "Warnw", "", "", "Argument[0..1]", "log-injection", "manual"], + ["go.uber.org/zap", "SugaredLogger", true, "With", "", "", "Argument[0]", "log-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["go.uber.org/zap", "", false, "Any", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "Binary", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "ByteString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "ByteStrings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "Error", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "Errors", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "NamedError", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "Reflect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "String", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "Stringp", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["go.uber.org/zap", "", false, "Strings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/go.uber.org.zap.model.yml b/go/ql/lib/ext/go.uber.org.zap.model.yml deleted file mode 100644 index e9fc971e5fa2..000000000000 --- a/go/ql/lib/ext/go.uber.org.zap.model.yml +++ /dev/null @@ -1,53 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["go.uber.org/zap", "Logger", True, "DPanic", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "Error", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "Fatal", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "Info", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "Named", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "Panic", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "With", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "Logger", True, "WithOptions", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "DPanic", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "DPanicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "DPanicw", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Debug", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Debugf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Debugw", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Error", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Errorf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Errorw", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Fatalw", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Info", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Infof", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Infow", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Named", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Panic", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Panicw", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Warn", "", "", "Argument[0]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Warnf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "Warnw", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["go.uber.org/zap", "SugaredLogger", True, "With", "", "", "Argument[0]", "log-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["go.uber.org/zap", "", False, "Any", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Binary", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "ByteString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "ByteStrings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Error", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Errors", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "NamedError", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Reflect", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "String", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Stringp", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["go.uber.org/zap", "", False, "Strings", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/golang.org.x.crypto.ssh.model.json b/go/ql/lib/ext/golang.org.x.crypto.ssh.model.json new file mode 100644 index 000000000000..29d348b8eeab --- /dev/null +++ b/go/ql/lib/ext/golang.org.x.crypto.ssh.model.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["golang.org/x/crypto/ssh", "Session", true, "CombinedOutput", "", "", "Argument[0]", "command-injection", "manual"], + ["golang.org/x/crypto/ssh", "Session", true, "Output", "", "", "Argument[0]", "command-injection", "manual"], + ["golang.org/x/crypto/ssh", "Session", true, "Run", "", "", "Argument[0]", "command-injection", "manual"], + ["golang.org/x/crypto/ssh", "Session", true, "Start", "", "", "Argument[0]", "command-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml b/go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml deleted file mode 100644 index 205a2a1dcb57..000000000000 --- a/go/ql/lib/ext/golang.org.x.crypto.ssh.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["golang.org/x/crypto/ssh", "Session", True, "CombinedOutput", "", "", "Argument[0]", "command-injection", "manual"] - - ["golang.org/x/crypto/ssh", "Session", True, "Output", "", "", "Argument[0]", "command-injection", "manual"] - - ["golang.org/x/crypto/ssh", "Session", True, "Run", "", "", "Argument[0]", "command-injection", "manual"] - - ["golang.org/x/crypto/ssh", "Session", True, "Start", "", "", "Argument[0]", "command-injection", "manual"] diff --git a/go/ql/lib/ext/golang.org.x.net.context.model.json b/go/ql/lib/ext/golang.org.x.net.context.model.json new file mode 100644 index 000000000000..fc0a70a01282 --- /dev/null +++ b/go/ql/lib/ext/golang.org.x.net.context.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["golang.org/x/net/context", "", false, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["golang.org/x/net/context", "", false, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["golang.org/x/net/context", "", false, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["golang.org/x/net/context", "", false, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/context", "Context", true, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/golang.org.x.net.context.model.yml b/go/ql/lib/ext/golang.org.x.net.context.model.yml deleted file mode 100644 index 873de75761fb..000000000000 --- a/go/ql/lib/ext/golang.org.x.net.context.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["golang.org/x/net/context", "", False, "WithCancel", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/context", "", False, "WithDeadline", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/context", "", False, "WithTimeout", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/context", "", False, "WithValue", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/context", "Context", True, "Value", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/golang.org.x.net.html.model.json b/go/ql/lib/ext/golang.org.x.net.html.model.json new file mode 100644 index 000000000000..d3756563200f --- /dev/null +++ b/go/ql/lib/ext/golang.org.x.net.html.model.json @@ -0,0 +1,28 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["golang.org/x/net/html", "", false, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/html", "", false, "NewTokenizer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/html", "", false, "NewTokenizerFragment", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/html", "", false, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["golang.org/x/net/html", "", false, "ParseFragment", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["golang.org/x/net/html", "", false, "ParseFragmentWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["golang.org/x/net/html", "", false, "ParseWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["golang.org/x/net/html", "", false, "Render", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["golang.org/x/net/html", "", false, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/html", "Node", true, "AppendChild", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["golang.org/x/net/html", "Node", true, "InsertBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["golang.org/x/net/html", "Tokenizer", true, "Buffered", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/html", "Tokenizer", true, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/html", "Tokenizer", true, "TagAttr", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"], + ["golang.org/x/net/html", "Tokenizer", true, "Text", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["golang.org/x/net/html", "Tokenizer", true, "Token", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/golang.org.x.net.html.model.yml b/go/ql/lib/ext/golang.org.x.net.html.model.yml deleted file mode 100644 index 5633e8b3b408..000000000000 --- a/go/ql/lib/ext/golang.org.x.net.html.model.yml +++ /dev/null @@ -1,21 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["golang.org/x/net/html", "", False, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "NewTokenizer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "NewTokenizerFragment", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "ParseFragment", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "ParseFragmentWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "ParseWithOptions", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "Render", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["golang.org/x/net/html", "", False, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "Node", True, "AppendChild", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["golang.org/x/net/html", "Node", True, "InsertBefore", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["golang.org/x/net/html", "Tokenizer", True, "Buffered", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "Tokenizer", True, "Raw", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "Tokenizer", True, "TagAttr", "", "", "Argument[receiver]", "ReturnValue[1]", "taint", "manual"] - - ["golang.org/x/net/html", "Tokenizer", True, "Text", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["golang.org/x/net/html", "Tokenizer", True, "Token", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/golang.org.x.net.websocket.model.json b/go/ql/lib/ext/golang.org.x.net.websocket.model.json new file mode 100644 index 000000000000..1374c04a935c --- /dev/null +++ b/go/ql/lib/ext/golang.org.x.net.websocket.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["golang.org/x/net/websocket", "Codec", true, "Receive", "", "", "Argument[1]", "remote", "manual"], + ["golang.org/x/net/websocket", "Conn", true, "Read", "", "", "Argument[0]", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/golang.org.x.net.websocket.model.yml b/go/ql/lib/ext/golang.org.x.net.websocket.model.yml deleted file mode 100644 index 422d74248a59..000000000000 --- a/go/ql/lib/ext/golang.org.x.net.websocket.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["golang.org/x/net/websocket", "Codec", True, "Receive", "", "", "Argument[1]", "remote", "manual"] - - ["golang.org/x/net/websocket", "Conn", True, "Read", "", "", "Argument[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.json b/go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.json new file mode 100644 index 000000000000..0a79d995e5bf --- /dev/null +++ b/go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["google.golang.org/protobuf/internal/encoding/text", "Token", true, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.yml b/go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.yml deleted file mode 100644 index e0808239e562..000000000000 --- a/go/ql/lib/ext/google.golang.org.protobuf.internal.encoding.text.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["google.golang.org/protobuf/internal/encoding/text", "Token", True, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.json b/go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.json new file mode 100644 index 000000000000..74f1a6f7fd49 --- /dev/null +++ b/go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["google.golang.org/protobuf/internal/impl", "aberrantMessage", true, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["google.golang.org/protobuf/internal/impl", "aberrantMessage", true, "GetUnknown", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.yml b/go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.yml deleted file mode 100644 index 487e1c923590..000000000000 --- a/go/ql/lib/ext/google.golang.org.protobuf.internal.impl.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["google.golang.org/protobuf/internal/impl", "aberrantMessage", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["google.golang.org/protobuf/internal/impl", "aberrantMessage", True, "GetUnknown", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/google.golang.org.protobuf.proto.model.json b/go/ql/lib/ext/google.golang.org.protobuf.proto.model.json new file mode 100644 index 000000000000..87d35416cbbd --- /dev/null +++ b/go/ql/lib/ext/google.golang.org.protobuf.proto.model.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["google.golang.org/protobuf/proto", "", false, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["google.golang.org/protobuf/proto", "", false, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["google.golang.org/protobuf/proto", "", false, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["google.golang.org/protobuf/proto", "", false, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["google.golang.org/protobuf/proto", "MarshalOptions", true, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["google.golang.org/protobuf/proto", "MarshalOptions", true, "MarshalAppend", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["google.golang.org/protobuf/proto", "MarshalOptions", true, "MarshalAppend", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"], + ["google.golang.org/protobuf/proto", "UnmarshalOptions", true, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml b/go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml deleted file mode 100644 index 988559372565..000000000000 --- a/go/ql/lib/ext/google.golang.org.protobuf.proto.model.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["google.golang.org/protobuf/proto", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "", False, "Merge", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "MarshalOptions", True, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "MarshalOptions", True, "MarshalAppend", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "MarshalOptions", True, "MarshalAppend", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["google.golang.org/protobuf/proto", "UnmarshalOptions", True, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] diff --git a/go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.json b/go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.json new file mode 100644 index 000000000000..8ad3c86c06ed --- /dev/null +++ b/go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["google.golang.org/protobuf/reflect/protoreflect", "ProtoMessage", true, "ProtoReflect", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.yml b/go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.yml deleted file mode 100644 index d53a9016b8da..000000000000 --- a/go/ql/lib/ext/google.golang.org.protobuf.reflect.protoreflect.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["google.golang.org/protobuf/reflect/protoreflect", "ProtoMessage", True, "ProtoReflect", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/gopkg.in.macaron.model.json b/go/ql/lib/ext/gopkg.in.macaron.model.json new file mode 100644 index 000000000000..26216b864236 --- /dev/null +++ b/go/ql/lib/ext/gopkg.in.macaron.model.json @@ -0,0 +1,42 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["gopkg.in/macaron", "Context", true, "Redirect", "", "", "Argument[0]", "url-redirection[receiver]", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["gopkg.in/macaron", "Context", true, "AllParams", "", "", "ReturnValue", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "GetCookie", "", "", "ReturnValue", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "GetSecureCookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "GetSuperSecureCookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "GetFile", "", "", "ReturnValue[0]", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "Params", "", "", "ReturnValue", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "ParamsEscape", "", "", "ReturnValue", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "Query", "", "", "ReturnValue", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "QueryEscape", "", "", "ReturnValue", "remote", "manual"], + ["gopkg.in/macaron", "Context", true, "QueryStrings", "", "", "ReturnValue", "remote", "manual"], + ["gopkg.in/macaron", "RequestBody", true, "Bytes", "", "", "ReturnValue[0]", "remote", "manual"], + ["gopkg.in/macaron", "RequestBody", true, "String", "", "", "ReturnValue[0]", "remote", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["gopkg.in/macaron", "RequestBody", true, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/gopkg.in.macaron.model.yml b/go/ql/lib/ext/gopkg.in.macaron.model.yml deleted file mode 100644 index d0c0a82a462a..000000000000 --- a/go/ql/lib/ext/gopkg.in.macaron.model.yml +++ /dev/null @@ -1,27 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["gopkg.in/macaron", "Context", True, "Redirect", "", "", "Argument[0]", "url-redirection[receiver]", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["gopkg.in/macaron", "Context", True, "AllParams", "", "", "ReturnValue", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "GetCookie", "", "", "ReturnValue", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "GetSecureCookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "GetSuperSecureCookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "GetFile", "", "", "ReturnValue[0]", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "Params", "", "", "ReturnValue", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "ParamsEscape", "", "", "ReturnValue", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "Query", "", "", "ReturnValue", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "QueryEscape", "", "", "ReturnValue", "remote", "manual"] - - ["gopkg.in/macaron", "Context", True, "QueryStrings", "", "", "ReturnValue", "remote", "manual"] - - ["gopkg.in/macaron", "RequestBody", True, "Bytes", "", "", "ReturnValue[0]", "remote", "manual"] - - ["gopkg.in/macaron", "RequestBody", True, "String", "", "", "ReturnValue[0]", "remote", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["gopkg.in/macaron", "RequestBody", True, "String", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/gopkg.in.yaml.model.json b/go/ql/lib/ext/gopkg.in.yaml.model.json new file mode 100644 index 000000000000..8cccafcbf277 --- /dev/null +++ b/go/ql/lib/ext/gopkg.in.yaml.model.json @@ -0,0 +1,21 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["gopkg.in/yaml", "", false, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["gopkg.in/yaml", "", false, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["gopkg.in/yaml", "", false, "UnmarshalStrict", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["gopkg.in/yaml", "", false, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["gopkg.in/yaml", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/gopkg.in.yaml.model.yml b/go/ql/lib/ext/gopkg.in.yaml.model.yml deleted file mode 100644 index 34b973e67198..000000000000 --- a/go/ql/lib/ext/gopkg.in.yaml.model.yml +++ /dev/null @@ -1,14 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["gopkg.in/yaml", "", False, "Marshal", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["gopkg.in/yaml", "", False, "Unmarshal", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["gopkg.in/yaml", "", False, "UnmarshalStrict", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["gopkg.in/yaml", "", False, "NewDecoder", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["gopkg.in/yaml", "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"] diff --git a/go/ql/lib/ext/gorm.io.gorm.model.json b/go/ql/lib/ext/gorm.io.gorm.model.json new file mode 100644 index 000000000000..d3a67848d4dd --- /dev/null +++ b/go/ql/lib/ext/gorm.io.gorm.model.json @@ -0,0 +1,68 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["gorm", "gorm.io/gorm"], + ["gorm", "github.com/jinzhu/gorm"], + ["gorm", "github.com/go-gorm/gorm"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["group:gorm", "Association", true, "Find", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "ConnPool", true, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorm", "ConnPool", true, "QueryRowContext", "", "", "ReturnValue", "database", "manual"], + ["group:gorm", "DB", true, "Find", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "FindInBatches", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "First", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "FirstOrCreate", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "FirstOrInit", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "Last", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "Model", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "Pluck", "", "", "Argument[1]", "database", "manual"], + ["group:gorm", "DB", true, "Row", "", "", "ReturnValue", "database", "manual"], + ["group:gorm", "DB", true, "Rows", "", "", "ReturnValue[0]", "database", "manual"], + ["group:gorm", "DB", true, "Scan", "", "", "Argument[0]", "database", "manual"], + ["group:gorm", "DB", true, "Take", "", "", "Argument[0]", "database", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:gorm", "DB", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Raw", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Order", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Not", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Or", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Select", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Table", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Group", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Having", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Joins", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Exec", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Distinct", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:gorm", "DB", true, "Pluck", "", "", "Argument[0]", "sql-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["group:gorm", "DB", true, "ScanRows", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/gorm.io.gorm.model.yml b/go/ql/lib/ext/gorm.io.gorm.model.yml deleted file mode 100644 index 7cea07e18ff8..000000000000 --- a/go/ql/lib/ext/gorm.io.gorm.model.yml +++ /dev/null @@ -1,49 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["gorm", "gorm.io/gorm"] - - ["gorm", "github.com/jinzhu/gorm"] - - ["gorm", "github.com/go-gorm/gorm"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["group:gorm", "Association", True, "Find", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "ConnPool", True, "QueryContext", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorm", "ConnPool", True, "QueryRowContext", "", "", "ReturnValue", "database", "manual"] - - ["group:gorm", "DB", True, "Find", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "FindInBatches", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "First", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "FirstOrCreate", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "FirstOrInit", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "Last", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "Model", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "Pluck", "", "", "Argument[1]", "database", "manual"] - - ["group:gorm", "DB", True, "Row", "", "", "ReturnValue", "database", "manual"] - - ["group:gorm", "DB", True, "Rows", "", "", "ReturnValue[0]", "database", "manual"] - - ["group:gorm", "DB", True, "Scan", "", "", "Argument[0]", "database", "manual"] - - ["group:gorm", "DB", True, "Take", "", "", "Argument[0]", "database", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:gorm", "DB", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Raw", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Order", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Not", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Or", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Select", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Table", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Group", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Having", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Joins", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Exec", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Distinct", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:gorm", "DB", True, "Pluck", "", "", "Argument[0]", "sql-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["group:gorm", "DB", True, "ScanRows", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] diff --git a/go/ql/lib/ext/html.model.json b/go/ql/lib/ext/html.model.json new file mode 100644 index 000000000000..81e85cd55cac --- /dev/null +++ b/go/ql/lib/ext/html.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["html", "", false, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["html", "", false, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/html.model.yml b/go/ql/lib/ext/html.model.yml deleted file mode 100644 index 24d4e70152c2..000000000000 --- a/go/ql/lib/ext/html.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["html", "", False, "EscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["html", "", False, "UnescapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/html.template.model.json b/go/ql/lib/ext/html.template.model.json new file mode 100644 index 000000000000..c0e00e53879f --- /dev/null +++ b/go/ql/lib/ext/html.template.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["html/template", "", false, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["html/template", "", false, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["html/template", "", false, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["html/template", "", false, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["html/template", "Template", true, "Execute", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["html/template", "Template", true, "ExecuteTemplate", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/html.template.model.yml b/go/ql/lib/ext/html.template.model.yml deleted file mode 100644 index 0ee840c4eaed..000000000000 --- a/go/ql/lib/ext/html.template.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["html/template", "", False, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["html/template", "", False, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["html/template", "", False, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["html/template", "", False, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["html/template", "Template", True, "Execute", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["html/template", "Template", True, "ExecuteTemplate", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/io.fs.model.json b/go/ql/lib/ext/io.fs.model.json new file mode 100644 index 000000000000..394b1e956a8e --- /dev/null +++ b/go/ql/lib/ext/io.fs.model.json @@ -0,0 +1,36 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["io/fs", "", false, "FileInfoToDirEntry", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["io/fs", "", false, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["io/fs", "", false, "ReadDir", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["io/fs", "", false, "ReadFile", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["io/fs", "", false, "Sub", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["io/fs", "DirEntry", true, "Info", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["io/fs", "DirEntry", true, "Name", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["io/fs", "File", true, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["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"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["io/fs", "", false, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"], + ["io/fs", "ReadFileFS", true, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"], + ["io/fs", "FS", true, "Open", "", "", "ReturnValue[0]", "file", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/io.fs.model.yml b/go/ql/lib/ext/io.fs.model.yml deleted file mode 100644 index 1b9be01aba91..000000000000 --- a/go/ql/lib/ext/io.fs.model.yml +++ /dev/null @@ -1,25 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["io/fs", "", False, "FileInfoToDirEntry", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io/fs", "", False, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "", False, "ReadDir", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "", False, "ReadFile", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "", False, "Sub", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "DirEntry", True, "Info", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["io/fs", "DirEntry", True, "Name", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["io/fs", "File", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["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"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["io/fs", "", False, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] - - ["io/fs", "ReadFileFS", True, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] - - ["io/fs", "FS", True, "Open", "", "", "ReturnValue[0]", "file", "manual"] diff --git a/go/ql/lib/ext/io.ioutil.model.json b/go/ql/lib/ext/io.ioutil.model.json new file mode 100644 index 000000000000..f6ef180fb92b --- /dev/null +++ b/go/ql/lib/ext/io.ioutil.model.json @@ -0,0 +1,36 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["io/ioutil", "", false, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"], + ["io/ioutil", "", false, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"], + ["io/ioutil", "", false, "TempDir", "", "", "Argument[0..1]", "path-injection", "manual"], + ["io/ioutil", "", false, "TempFile", "", "", "Argument[0..1]", "path-injection", "manual"], + ["io/ioutil", "", false, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["io/ioutil", "", false, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["io/ioutil", "", false, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["io/ioutil", "", false, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/io.ioutil.model.yml b/go/ql/lib/ext/io.ioutil.model.yml deleted file mode 100644 index d5fae77c1d4e..000000000000 --- a/go/ql/lib/ext/io.ioutil.model.yml +++ /dev/null @@ -1,21 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["io/ioutil", "", False, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] - - ["io/ioutil", "", False, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["io/ioutil", "", False, "TempDir", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["io/ioutil", "", False, "TempFile", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["io/ioutil", "", False, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["io/ioutil", "", False, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io/ioutil", "", False, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["io/ioutil", "", False, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] diff --git a/go/ql/lib/ext/io.model.json b/go/ql/lib/ext/io.model.json new file mode 100644 index 000000000000..fb8159084929 --- /dev/null +++ b/go/ql/lib/ext/io.model.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["io", "", false, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["io", "", false, "CopyBuffer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["io", "", false, "CopyN", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["io", "", false, "LimitReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["io", "", false, "NewSectionReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["io", "", false, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["io", "", false, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["io", "", false, "ReadAtLeast", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["io", "", false, "ReadFull", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["io", "", false, "TeeReader", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["io", "", false, "TeeReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["io", "", false, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["io", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/io.model.yml b/go/ql/lib/ext/io.model.yml deleted file mode 100644 index d9c7190026d5..000000000000 --- a/go/ql/lib/ext/io.model.yml +++ /dev/null @@ -1,24 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["io", "", False, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["io", "", False, "CopyBuffer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["io", "", False, "CopyN", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["io", "", False, "LimitReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "NewSectionReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "NopCloser", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "ReadAll", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["io", "", False, "ReadAtLeast", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["io", "", False, "ReadFull", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["io", "", False, "TeeReader", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["io", "", False, "TeeReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["io", "", False, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["io", "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"] diff --git a/go/ql/lib/ext/k8s.io.api.core.model.json b/go/ql/lib/ext/k8s.io.api.core.model.json new file mode 100644 index 000000000000..ea3423f1df5d --- /dev/null +++ b/go/ql/lib/ext/k8s.io.api.core.model.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/k8s.io.api.core.model.yml b/go/ql/lib/ext/k8s.io.api.core.model.yml deleted file mode 100644 index 7c2a5fd25664..000000000000 --- a/go/ql/lib/ext/k8s.io.api.core.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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"] diff --git a/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.json b/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.json new file mode 100644 index 000000000000..a8985f7bcb84 --- /dev/null +++ b/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.json @@ -0,0 +1,59 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_Slice_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_Slice_string_To_int", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_Slice_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_Slice_string_To_string", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_runtime_Object_To_runtime_RawExtension", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_runtime_RawExtension_To_runtime_Object", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Convert_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Decode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "DecodeInto", "", "", "Argument[1]", "Argument[2]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "DeepCopyJSON", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "DeepCopyJSONValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Encode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "EncodeOrDie", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "Field", "", "", "Argument[0]", "Argument[2]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "FieldPtr", "", "", "Argument[0]", "Argument[2]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "NewEncodable", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "NewEncodableList", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "SetField", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "", false, "UseOrCreateObject", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "CacheableObject", true, "CacheEncode", "", "", "Argument[receiver]", "Argument[2]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "CacheableObject", true, "GetObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Decoder", true, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Decoder", true, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Encoder", true, "Encode", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Framer", true, "NewFrameReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Framer", true, "NewFrameWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Object", true, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "ObjectConvertor", true, "Convert", "", "", "Argument[0]", "Argument[1]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "ObjectVersioner", true, "ConvertToVersion", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "ParameterCodec", true, "DecodeParameters", "", "", "Argument[0]", "Argument[2]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "ParameterCodec", true, "EncodeParameters", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "ProtobufMarshaller", true, "MarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "ProtobufReverseMarshaller", true, "MarshalToSizedBuffer", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "RawExtension", true, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "RawExtension", true, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "RawExtension", true, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "RawExtension", true, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Unknown", true, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Unknown", true, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Unknown", true, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Unknown", true, "NestedMarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Unknown", true, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Unstructured", true, "SetUnstructuredContent", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "Unstructured", true, "UnstructuredContent", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "WithoutVersionDecoder", true, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"], + ["k8s.io/apimachinery/pkg/runtime", "WithoutVersionDecoder", true, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml b/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml deleted file mode 100644 index e960b741ac79..000000000000 --- a/go/ql/lib/ext/k8s.io.apimachinery.pkg.runtime.model.yml +++ /dev/null @@ -1,52 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_int", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_Slice_string_To_string", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_runtime_Object_To_runtime_RawExtension", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_runtime_RawExtension_To_runtime_Object", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_string_To_Pointer_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Convert_string_To_int64", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Decode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "DecodeInto", "", "", "Argument[1]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "DeepCopyJSON", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "DeepCopyJSONValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Encode", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "EncodeOrDie", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "Field", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "FieldPtr", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "NewEncodable", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "NewEncodableList", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "SetField", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "", False, "UseOrCreateObject", "", "", "Argument[3]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "CacheableObject", True, "CacheEncode", "", "", "Argument[receiver]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "CacheableObject", True, "GetObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Decoder", True, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Decoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Encoder", True, "Encode", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Framer", True, "NewFrameReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Framer", True, "NewFrameWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Object", True, "DeepCopyObject", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "ObjectConvertor", True, "Convert", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "ObjectVersioner", True, "ConvertToVersion", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "ParameterCodec", True, "DecodeParameters", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "ParameterCodec", True, "EncodeParameters", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "ProtobufMarshaller", True, "MarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "ProtobufReverseMarshaller", True, "MarshalToSizedBuffer", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "RawExtension", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "RawExtension", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "RawExtension", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "RawExtension", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Unknown", True, "DeepCopy", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Unknown", True, "DeepCopyInto", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Unknown", True, "Marshal", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Unknown", True, "NestedMarshalTo", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Unknown", True, "Unmarshal", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Unstructured", True, "SetUnstructuredContent", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "Unstructured", True, "UnstructuredContent", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "WithoutVersionDecoder", True, "Decode", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["k8s.io/apimachinery/pkg/runtime", "WithoutVersionDecoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/log.model.json b/go/ql/lib/ext/log.model.json new file mode 100644 index 000000000000..5b2feef0af42 --- /dev/null +++ b/go/ql/lib/ext/log.model.json @@ -0,0 +1,43 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["log", "", false, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "", false, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log", "", false, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "", false, "Output", "", "", "Argument[1]", "log-injection", "manual"], + ["log", "", false, "Panic", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "", false, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log", "", false, "Panicln", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "", false, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "", false, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log", "", false, "Println", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "Logger", true, "Fatal", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "Logger", true, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log", "Logger", true, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "Logger", true, "Output", "", "", "Argument[1]", "log-injection", "manual"], + ["log", "Logger", true, "Panic", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "Logger", true, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log", "Logger", true, "Panicln", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "Logger", true, "Print", "", "", "Argument[0]", "log-injection", "manual"], + ["log", "Logger", true, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log", "Logger", true, "Println", "", "", "Argument[0]", "log-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/log.model.yml b/go/ql/lib/ext/log.model.yml deleted file mode 100644 index 4d1df7cf0821..000000000000 --- a/go/ql/lib/ext/log.model.yml +++ /dev/null @@ -1,32 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["log", "", False, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "", False, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log", "", False, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "", False, "Output", "", "", "Argument[1]", "log-injection", "manual"] - - ["log", "", False, "Panic", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "", False, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log", "", False, "Panicln", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "", False, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "", False, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log", "", False, "Println", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "Logger", True, "Fatal", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "Logger", True, "Fatalf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log", "Logger", True, "Fatalln", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "Logger", True, "Output", "", "", "Argument[1]", "log-injection", "manual"] - - ["log", "Logger", True, "Panic", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "Logger", True, "Panicf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log", "Logger", True, "Panicln", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "Logger", True, "Print", "", "", "Argument[0]", "log-injection", "manual"] - - ["log", "Logger", True, "Printf", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log", "Logger", True, "Println", "", "", "Argument[0]", "log-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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"] diff --git a/go/ql/lib/ext/log.slog.model.json b/go/ql/lib/ext/log.slog.model.json new file mode 100644 index 000000000000..d1c098bffb25 --- /dev/null +++ b/go/ql/lib/ext/log.slog.model.json @@ -0,0 +1,64 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // Package-level convenience functions (msg string, args ...any). + ["log/slog", "", false, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log/slog", "", false, "Info", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log/slog", "", false, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log/slog", "", false, "Error", "", "", "Argument[0..1]", "log-injection", "manual"], + // Context variants (ctx, msg string, args ...any). + ["log/slog", "", false, "DebugContext", "", "", "Argument[1..2]", "log-injection", "manual"], + ["log/slog", "", false, "InfoContext", "", "", "Argument[1..2]", "log-injection", "manual"], + ["log/slog", "", false, "WarnContext", "", "", "Argument[1..2]", "log-injection", "manual"], + ["log/slog", "", false, "ErrorContext", "", "", "Argument[1..2]", "log-injection", "manual"], + // Log/LogAttrs (ctx, level, msg string, args/attrs ...). + ["log/slog", "", false, "Log", "", "", "Argument[2..3]", "log-injection", "manual"], + ["log/slog", "", false, "LogAttrs", "", "", "Argument[2..3]", "log-injection", "manual"], + // Methods on *slog.Logger. + ["log/slog", "Logger", true, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log/slog", "Logger", true, "Info", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log/slog", "Logger", true, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log/slog", "Logger", true, "Error", "", "", "Argument[0..1]", "log-injection", "manual"], + ["log/slog", "Logger", true, "DebugContext", "", "", "Argument[1..2]", "log-injection", "manual"], + ["log/slog", "Logger", true, "InfoContext", "", "", "Argument[1..2]", "log-injection", "manual"], + ["log/slog", "Logger", true, "WarnContext", "", "", "Argument[1..2]", "log-injection", "manual"], + ["log/slog", "Logger", true, "ErrorContext", "", "", "Argument[1..2]", "log-injection", "manual"], + ["log/slog", "Logger", true, "Log", "", "", "Argument[2..3]", "log-injection", "manual"], + ["log/slog", "Logger", true, "LogAttrs", "", "", "Argument[2..3]", "log-injection", "manual"], + // With/WithGroup add attributes that are included in every subsequent log call. + ["log/slog", "", false, "With", "", "", "Argument[0]", "log-injection", "manual"], + ["log/slog", "Logger", true, "With", "", "", "Argument[0]", "log-injection", "manual"], + ["log/slog", "Logger", true, "WithGroup", "", "", "Argument[0]", "log-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + // Constructors for Attr that can carry a tainted string into the result. + ["log/slog", "", false, "Any", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["log/slog", "", false, "Group", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["log/slog", "", false, "Group", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"], + ["log/slog", "", false, "GroupAttrs", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["log/slog", "", false, "GroupAttrs", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"], + ["log/slog", "", false, "String", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + // Constructors for Value that can carry a tainted string into the result. + ["log/slog", "", false, "AnyValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["log/slog", "", false, "GroupValue", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"], + ["log/slog", "", false, "StringValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + // Methods that read a string back out of an Attr or Value. + ["log/slog", "Attr", true, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["log/slog", "Value", true, "Any", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["log/slog", "Value", true, "Group", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"], + ["log/slog", "Value", true, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/log.slog.model.yml b/go/ql/lib/ext/log.slog.model.yml deleted file mode 100644 index 888f2b54aaec..000000000000 --- a/go/ql/lib/ext/log.slog.model.yml +++ /dev/null @@ -1,53 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # Package-level convenience functions (msg string, args ...any). - - ["log/slog", "", False, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log/slog", "", False, "Info", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log/slog", "", False, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log/slog", "", False, "Error", "", "", "Argument[0..1]", "log-injection", "manual"] - # Context variants (ctx, msg string, args ...any). - - ["log/slog", "", False, "DebugContext", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["log/slog", "", False, "InfoContext", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["log/slog", "", False, "WarnContext", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["log/slog", "", False, "ErrorContext", "", "", "Argument[1..2]", "log-injection", "manual"] - # Log/LogAttrs (ctx, level, msg string, args/attrs ...). - - ["log/slog", "", False, "Log", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["log/slog", "", False, "LogAttrs", "", "", "Argument[2..3]", "log-injection", "manual"] - # Methods on *slog.Logger. - - ["log/slog", "Logger", True, "Debug", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "Info", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "Warn", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "Error", "", "", "Argument[0..1]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "DebugContext", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "InfoContext", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "WarnContext", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "ErrorContext", "", "", "Argument[1..2]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "Log", "", "", "Argument[2..3]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "LogAttrs", "", "", "Argument[2..3]", "log-injection", "manual"] - # With/WithGroup add attributes that are included in every subsequent log call. - - ["log/slog", "", False, "With", "", "", "Argument[0]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "With", "", "", "Argument[0]", "log-injection", "manual"] - - ["log/slog", "Logger", True, "WithGroup", "", "", "Argument[0]", "log-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - # Constructors for Attr that can carry a tainted string into the result. - - ["log/slog", "", False, "Any", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["log/slog", "", False, "Group", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["log/slog", "", False, "Group", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["log/slog", "", False, "GroupAttrs", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["log/slog", "", False, "GroupAttrs", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["log/slog", "", False, "String", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - # Constructors for Value that can carry a tainted string into the result. - - ["log/slog", "", False, "AnyValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["log/slog", "", False, "GroupValue", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["log/slog", "", False, "StringValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - # Methods that read a string back out of an Attr or Value. - - ["log/slog", "Attr", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["log/slog", "Value", True, "Any", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["log/slog", "Value", True, "Group", "", "", "Argument[receiver]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["log/slog", "Value", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/maps.model.json b/go/ql/lib/ext/maps.model.json new file mode 100644 index 000000000000..5c496b1a019b --- /dev/null +++ b/go/ql/lib/ext/maps.model.json @@ -0,0 +1,21 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + // All should be modeled when we have a way to model iterators + ["maps", "", false, "Clone", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"], + ["maps", "", false, "Clone", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"], + // Collect should be modeled when we have a way to model iterators + ["maps", "", false, "Copy", "", "", "Argument[1].MapKey", "Argument[0].MapKey", "value", "manual"], + ["maps", "", false, "Copy", "", "", "Argument[1].MapValue", "Argument[0].MapValue", "value", "manual"] + ] + } + ] +} +// Insert should be modeled when we have a way to model iterators +// Keys should be modeled when we have a way to model iterators +// Values should be modeled when we have a way to model iterators diff --git a/go/ql/lib/ext/maps.model.yml b/go/ql/lib/ext/maps.model.yml deleted file mode 100644 index ce772ae31a46..000000000000 --- a/go/ql/lib/ext/maps.model.yml +++ /dev/null @@ -1,14 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - # All should be modeled when we have a way to model iterators - - ["maps", "", False, "Clone", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["maps", "", False, "Clone", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - # Collect should be modeled when we have a way to model iterators - - ["maps", "", False, "Copy", "", "", "Argument[1].MapKey", "Argument[0].MapKey", "value", "manual"] - - ["maps", "", False, "Copy", "", "", "Argument[1].MapValue", "Argument[0].MapValue", "value", "manual"] - # Insert should be modeled when we have a way to model iterators - # Keys should be modeled when we have a way to model iterators - # Values should be modeled when we have a way to model iterators diff --git a/go/ql/lib/ext/math.big.model.json b/go/ql/lib/ext/math.big.model.json new file mode 100644 index 000000000000..fa82de328537 --- /dev/null +++ b/go/ql/lib/ext/math.big.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["math/big", "Int", true, "Int64", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/math.big.model.yml b/go/ql/lib/ext/math.big.model.yml deleted file mode 100644 index dc09561897c9..000000000000 --- a/go/ql/lib/ext/math.big.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["math/big", "Int", True, "Int64", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/mime.model.json b/go/ql/lib/ext/mime.model.json new file mode 100644 index 000000000000..70f92f75c2bb --- /dev/null +++ b/go/ql/lib/ext/mime.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["mime", "", false, "FormatMediaType", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["mime", "", false, "ParseMediaType", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["mime", "WordDecoder", true, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["mime", "WordDecoder", true, "DecodeHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["mime", "WordEncoder", true, "Encode", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/mime.model.yml b/go/ql/lib/ext/mime.model.yml deleted file mode 100644 index 9027905423f7..000000000000 --- a/go/ql/lib/ext/mime.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["mime", "", False, "FormatMediaType", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["mime", "", False, "ParseMediaType", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["mime", "WordDecoder", True, "Decode", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["mime", "WordDecoder", True, "DecodeHeader", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["mime", "WordEncoder", True, "Encode", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/mime.multipart.model.json b/go/ql/lib/ext/mime.multipart.model.json new file mode 100644 index 000000000000..6ea2cb2fd75e --- /dev/null +++ b/go/ql/lib/ext/mime.multipart.model.json @@ -0,0 +1,41 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "barrierModel" + }, + "data": [ + // The only way to create a `mime/multipart.FileHeader` is to create a + // `mime/multipart.Form`, which creates the `Filename` field of each + // `mime/multipart.FileHeader` by calling `Part.FileName`, which calls + // `path/filepath.Base` on its return value. In general `path/filepath.Base` + // is not a sanitizer for path traversal, but in this specific case where the + // output is going to be used as a filename rather than a directory name, it + // is adequate. + ["mime/multipart", "FileHeader", false, "Filename", "", "", "", "path-injection", "manual"], + // `Part.FileName` calls `path/filepath.Base` on its return value. In + // general `path/filepath.Base` is not a sanitizer for path traversal, but in + // this specific case where the output is going to be used as a filename + // rather than a directory name, it is adequate. + ["mime/multipart", "Part", false, "FileName", "", "", "ReturnValue", "path-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["mime/multipart", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["mime/multipart", "FileHeader", true, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["mime/multipart", "Part", true, "FileName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["mime/multipart", "Part", true, "FormName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/mime.multipart.model.yml b/go/ql/lib/ext/mime.multipart.model.yml deleted file mode 100644 index 134481dfce33..000000000000 --- a/go/ql/lib/ext/mime.multipart.model.yml +++ /dev/null @@ -1,30 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: barrierModel - data: - # The only way to create a `mime/multipart.FileHeader` is to create a - # `mime/multipart.Form`, which creates the `Filename` field of each - # `mime/multipart.FileHeader` by calling `Part.FileName`, which calls - # `path/filepath.Base` on its return value. In general `path/filepath.Base` - # is not a sanitizer for path traversal, but in this specific case where the - # output is going to be used as a filename rather than a directory name, it - # is adequate. - - ["mime/multipart", "FileHeader", False, "Filename", "", "", "", "path-injection", "manual"] - # `Part.FileName` calls `path/filepath.Base` on its return value. In - # general `path/filepath.Base` is not a sanitizer for path traversal, but in - # this specific case where the output is going to be used as a filename - # rather than a directory name, it is adequate. - - ["mime/multipart", "Part", False, "FileName", "", "", "ReturnValue", "path-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["mime/multipart", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["mime/multipart", "FileHeader", True, "Open", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["mime/multipart", "Part", True, "FileName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["mime/multipart", "Part", True, "FormName", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["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"] diff --git a/go/ql/lib/ext/mime.quotedprintable.model.json b/go/ql/lib/ext/mime.quotedprintable.model.json new file mode 100644 index 000000000000..d7b875056b19 --- /dev/null +++ b/go/ql/lib/ext/mime.quotedprintable.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["mime/quotedprintable", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/mime.quotedprintable.model.yml b/go/ql/lib/ext/mime.quotedprintable.model.yml deleted file mode 100644 index 7ac77332727c..000000000000 --- a/go/ql/lib/ext/mime.quotedprintable.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["mime/quotedprintable", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/net.http.httputil.model.json b/go/ql/lib/ext/net.http.httputil.model.json new file mode 100644 index 000000000000..f6a9371abd4d --- /dev/null +++ b/go/ql/lib/ext/net.http.httputil.model.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["net/http/httputil", "", false, "DumpRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/http/httputil", "", false, "DumpRequestOut", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/http/httputil", "", false, "DumpResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/http/httputil", "", false, "NewChunkedReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/http/httputil", "", false, "NewClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["net/http/httputil", "", false, "NewProxyClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["net/http/httputil", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/net.http.httputil.model.yml b/go/ql/lib/ext/net.http.httputil.model.yml deleted file mode 100644 index 783322b36ae6..000000000000 --- a/go/ql/lib/ext/net.http.httputil.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["net/http/httputil", "", False, "DumpRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http/httputil", "", False, "DumpRequestOut", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http/httputil", "", False, "DumpResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http/httputil", "", False, "NewChunkedReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/http/httputil", "", False, "NewClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["net/http/httputil", "", False, "NewProxyClientConn", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["net/http/httputil", "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"] diff --git a/go/ql/lib/ext/net.http.model.json b/go/ql/lib/ext/net.http.model.json new file mode 100644 index 000000000000..59296e9ff775 --- /dev/null +++ b/go/ql/lib/ext/net.http.model.json @@ -0,0 +1,70 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // path-injection + ["net/http", "", false, "ServeFile", "", "", "Argument[2]", "path-injection", "manual"], + // url-redirection + ["net/http", "", false, "Redirect", "", "", "Argument[2]", "url-redirection[0]", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["net/http", "", false, "CanonicalHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/http", "", false, "Error", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["net/http", "", false, "MaxBytesReader", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["net/http", "", false, "NewRequest", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"], + ["net/http", "", false, "NewRequestWithContext", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"], + ["net/http", "", false, "ReadRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/http", "", false, "ReadResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/http", "", false, "SetCookie", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["net/http", "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" + }, + "data": [ + ["net/http", "Request", true, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"], + ["net/http", "Request", true, "Cookies", "", "", "ReturnValue.ArrayElement", "remote", "manual"], + ["net/http", "Request", true, "FormFile", "", "", "ReturnValue[0..1]", "remote", "manual"], + ["net/http", "Request", true, "FormValue", "", "", "ReturnValue", "remote", "manual"], + ["net/http", "Request", true, "MultipartReader", "", "", "ReturnValue[0]", "remote", "manual"], + ["net/http", "Request", true, "PostFormValue", "", "", "ReturnValue", "remote", "manual"], + ["net/http", "Request", true, "Referer", "", "", "ReturnValue", "remote", "manual"], + ["net/http", "Request", true, "UserAgent", "", "", "ReturnValue", "remote", "manual"], + ["net/http", "Request", true, "Body", "", "", "", "remote", "manual"], + ["net/http", "Request", true, "GetBody", "", "", "", "remote", "manual"], + ["net/http", "Request", true, "Form", "", "", "", "remote", "manual"], + ["net/http", "Request", true, "PostForm", "", "", "", "remote", "manual"], + ["net/http", "Request", true, "MultipartForm", "", "", "", "remote", "manual"], + ["net/http", "Request", true, "Header", "", "", "", "remote", "manual"], + ["net/http", "Request", true, "Trailer", "", "", "", "remote", "manual"], + ["net/http", "Request", true, "URL", "", "", "", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/net.http.model.yml b/go/ql/lib/ext/net.http.model.yml deleted file mode 100644 index 2bf417cf8f3a..000000000000 --- a/go/ql/lib/ext/net.http.model.yml +++ /dev/null @@ -1,55 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # path-injection - - ["net/http", "", False, "ServeFile", "", "", "Argument[2]", "path-injection", "manual"] - # url-redirection - - ["net/http", "", False, "Redirect", "", "", "Argument[2]", "url-redirection[0]", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["net/http", "", False, "CanonicalHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/http", "", False, "Error", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["net/http", "", False, "MaxBytesReader", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["net/http", "", False, "NewRequest", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "NewRequestWithContext", "", "", "Argument[2]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "ReadRequest", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "ReadResponse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/http", "", False, "SetCookie", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["net/http", "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 - data: - - ["net/http", "Request", True, "Cookie", "", "", "ReturnValue[0]", "remote", "manual"] - - ["net/http", "Request", True, "Cookies", "", "", "ReturnValue.ArrayElement", "remote", "manual"] - - ["net/http", "Request", True, "FormFile", "", "", "ReturnValue[0..1]", "remote", "manual"] - - ["net/http", "Request", True, "FormValue", "", "", "ReturnValue", "remote", "manual"] - - ["net/http", "Request", True, "MultipartReader", "", "", "ReturnValue[0]", "remote", "manual"] - - ["net/http", "Request", True, "PostFormValue", "", "", "ReturnValue", "remote", "manual"] - - ["net/http", "Request", True, "Referer", "", "", "ReturnValue", "remote", "manual"] - - ["net/http", "Request", True, "UserAgent", "", "", "ReturnValue", "remote", "manual"] - - ["net/http", "Request", True, "Body", "", "", "", "remote", "manual"] - - ["net/http", "Request", True, "GetBody", "", "", "", "remote", "manual"] - - ["net/http", "Request", True, "Form", "", "", "", "remote", "manual"] - - ["net/http", "Request", True, "PostForm", "", "", "", "remote", "manual"] - - ["net/http", "Request", True, "MultipartForm", "", "", "", "remote", "manual"] - - ["net/http", "Request", True, "Header", "", "", "", "remote", "manual"] - - ["net/http", "Request", True, "Trailer", "", "", "", "remote", "manual"] - - ["net/http", "Request", True, "URL", "", "", "", "remote", "manual"] diff --git a/go/ql/lib/ext/net.mail.model.json b/go/ql/lib/ext/net.mail.model.json new file mode 100644 index 000000000000..d2c554a76295 --- /dev/null +++ b/go/ql/lib/ext/net.mail.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["net/mail", "", false, "ParseAddress", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/mail", "", false, "ParseAddressList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/mail", "", false, "ReadMessage", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/mail", "AddressParser", true, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/mail", "AddressParser", true, "ParseList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/mail", "Header", true, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/net.mail.model.yml b/go/ql/lib/ext/net.mail.model.yml deleted file mode 100644 index 0bb4ef1884bc..000000000000 --- a/go/ql/lib/ext/net.mail.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["net/mail", "", False, "ParseAddress", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/mail", "", False, "ParseAddressList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/mail", "", False, "ReadMessage", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/mail", "AddressParser", True, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/mail", "AddressParser", True, "ParseList", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/mail", "Header", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/net.model.json b/go/ql/lib/ext/net.model.json new file mode 100644 index 000000000000..04f627a27a07 --- /dev/null +++ b/go/ql/lib/ext/net.model.json @@ -0,0 +1,32 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["net", "", false, "FileConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net", "", false, "FilePacketConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net", "", false, "JoinHostPort", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["net", "", false, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["net", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/net.model.yml b/go/ql/lib/ext/net.model.yml deleted file mode 100644 index 0922b5b31d6f..000000000000 --- a/go/ql/lib/ext/net.model.yml +++ /dev/null @@ -1,25 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["net", "", False, "FileConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net", "", False, "FilePacketConn", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net", "", False, "JoinHostPort", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["net", "", False, "SplitHostPort", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["net", "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"] diff --git a/go/ql/lib/ext/net.textproto.model.json b/go/ql/lib/ext/net.textproto.model.json new file mode 100644 index 000000000000..fbbeab42788c --- /dev/null +++ b/go/ql/lib/ext/net.textproto.model.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["net/textproto", "", false, "CanonicalMIMEHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/textproto", "", false, "NewConn", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/textproto", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/textproto", "", false, "TrimBytes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/textproto", "", false, "TrimString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/textproto", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/net.textproto.model.yml b/go/ql/lib/ext/net.textproto.model.yml deleted file mode 100644 index 63a9da4497a5..000000000000 --- a/go/ql/lib/ext/net.textproto.model.yml +++ /dev/null @@ -1,24 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["net/textproto", "", False, "CanonicalMIMEHeaderKey", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "NewConn", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "TrimBytes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "", False, "TrimString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/textproto", "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"] diff --git a/go/ql/lib/ext/net.url.model.json b/go/ql/lib/ext/net.url.model.json new file mode 100644 index 000000000000..b270571fc089 --- /dev/null +++ b/go/ql/lib/ext/net.url.model.json @@ -0,0 +1,37 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["net/url", "", false, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/url", "", false, "ParseQuery", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/url", "", false, "ParseRequestURI", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/url", "", false, "PathEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/url", "", false, "PathUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/url", "", false, "QueryEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/url", "", false, "QueryUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["net/url", "", false, "User", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["net/url", "", false, "UserPassword", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["net/url", "URL", true, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["net/url", "URL", true, "EscapedPath", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["net/url", "URL", true, "Hostname", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["net/url", "URL", true, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["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[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[receiver]", "ReturnValue[0]", "taint", "manual"], + ["net/url", "Userinfo", true, "Username", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["net/url", "Values", true, "Clone", "", "", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/net.url.model.yml b/go/ql/lib/ext/net.url.model.yml deleted file mode 100644 index ca4cf2c170f2..000000000000 --- a/go/ql/lib/ext/net.url.model.yml +++ /dev/null @@ -1,30 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["net/url", "", False, "Parse", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "ParseQuery", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "ParseRequestURI", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "PathEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/url", "", False, "PathUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "QueryEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/url", "", False, "QueryUnescape", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "", False, "User", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["net/url", "", False, "UserPassword", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["net/url", "URL", True, "Clone", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["net/url", "URL", True, "EscapedPath", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["net/url", "URL", True, "Hostname", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["net/url", "URL", True, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["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[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[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["net/url", "Userinfo", True, "Username", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["net/url", "Values", True, "Clone", "", "", "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"] diff --git a/go/ql/lib/ext/os.exec.model.json b/go/ql/lib/ext/os.exec.model.json new file mode 100644 index 000000000000..8ec4d1b8e50a --- /dev/null +++ b/go/ql/lib/ext/os.exec.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["os/exec", "", false, "Command", "", "", "Argument[0]", "command-injection", "manual"], + ["os/exec", "", false, "CommandContext", "", "", "Argument[1]", "command-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/os.exec.model.yml b/go/ql/lib/ext/os.exec.model.yml deleted file mode 100644 index 6b3a80c372c3..000000000000 --- a/go/ql/lib/ext/os.exec.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["os/exec", "", False, "Command", "", "", "Argument[0]", "command-injection", "manual"] - - ["os/exec", "", False, "CommandContext", "", "", "Argument[1]", "command-injection", "manual"] diff --git a/go/ql/lib/ext/os.model.json b/go/ql/lib/ext/os.model.json new file mode 100644 index 000000000000..1cfb7bbdf3ad --- /dev/null +++ b/go/ql/lib/ext/os.model.json @@ -0,0 +1,75 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + // path-injection + ["os", "", false, "Chdir", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Chmod", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Chown", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Chtimes", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Create", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Lchown", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Link", "", "", "Argument[0..1]", "path-injection", "manual"], + ["os", "", false, "Lstat", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "NewFile", "", "", "Argument[1]", "path-injection", "manual"], + ["os", "", false, "Open", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Readlink", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Remove", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Rename", "", "", "Argument[0..1]", "path-injection", "manual"], + ["os", "", false, "Stat", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "Symlink", "", "", "Argument[0..1]", "path-injection", "manual"], + ["os", "", false, "Truncate", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "DirFS", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "MkdirTemp", "", "", "Argument[0..1]", "path-injection", "manual"], + ["os", "", false, "CreateTemp", "", "", "Argument[0]", "path-injection", "manual"], + ["os", "", false, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"], + // command-injection + ["os", "", false, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["os", "", false, "Expand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["os", "", false, "ExpandEnv", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["os", "", false, "NewFile", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["os", "File", true, "Fd", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["os", "File", true, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["os", "File", true, "ReadAt", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["os", "", false, "Args", "", "", "", "commandargs", "manual"], + ["os", "", false, "Environ", "", "", "ReturnValue", "environment", "manual"], // TODO: when sources can have access paths, use .ArrayElement + ["os", "", false, "ExpandEnv", "", "", "ReturnValue", "environment", "manual"], + ["os", "", false, "Getenv", "", "", "ReturnValue", "environment", "manual"], + ["os", "", false, "LookupEnv", "", "", "ReturnValue[0]", "environment", "manual"], + ["os", "", false, "Open", "", "", "ReturnValue[0]", "file", "manual"], + ["os", "", false, "OpenFile", "", "", "ReturnValue[0]", "file", "manual"], + ["os", "", false, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"], + ["os", "", false, "Stdin", "", "", "", "stdin", "manual"], + ["os", "", false, "UserCacheDir", "", "", "ReturnValue[0]", "environment", "manual"], + ["os", "", false, "UserConfigDir", "", "", "ReturnValue[0]", "environment", "manual"], + ["os", "", false, "UserHomeDir", "", "", "ReturnValue[0]", "environment", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/os.model.yml b/go/ql/lib/ext/os.model.yml deleted file mode 100644 index 7d2070b53bac..000000000000 --- a/go/ql/lib/ext/os.model.yml +++ /dev/null @@ -1,60 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - # path-injection - - ["os", "", False, "Chdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Chmod", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Chown", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Chtimes", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Create", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Lchown", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Link", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "Lstat", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Mkdir", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "MkdirAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "NewFile", "", "", "Argument[1]", "path-injection", "manual"] - - ["os", "", False, "Open", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "OpenFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Readlink", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Remove", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "RemoveAll", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Rename", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "Stat", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "Symlink", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "Truncate", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "DirFS", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "ReadDir", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "ReadFile", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "MkdirTemp", "", "", "Argument[0..1]", "path-injection", "manual"] - - ["os", "", False, "CreateTemp", "", "", "Argument[0]", "path-injection", "manual"] - - ["os", "", False, "WriteFile", "", "", "Argument[0]", "path-injection", "manual"] - # command-injection - - ["os", "", False, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["os", "", False, "Expand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["os", "", False, "ExpandEnv", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["os", "", False, "NewFile", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["os", "File", True, "Fd", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["os", "File", True, "Read", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["os", "File", True, "ReadAt", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["os", "", False, "Args", "", "", "", "commandargs", "manual"] - - ["os", "", False, "Environ", "", "", "ReturnValue", "environment", "manual"] # TODO: when sources can have access paths, use .ArrayElement - - ["os", "", False, "ExpandEnv", "", "", "ReturnValue", "environment", "manual"] - - ["os", "", False, "Getenv", "", "", "ReturnValue", "environment", "manual"] - - ["os", "", False, "LookupEnv", "", "", "ReturnValue[0]", "environment", "manual"] - - ["os", "", False, "Open", "", "", "ReturnValue[0]", "file", "manual"] - - ["os", "", False, "OpenFile", "", "", "ReturnValue[0]", "file", "manual"] - - ["os", "", False, "ReadFile", "", "", "ReturnValue[0]", "file", "manual"] - - ["os", "", False, "Stdin", "", "", "", "stdin", "manual"] - - ["os", "", False, "UserCacheDir", "", "", "ReturnValue[0]", "environment", "manual"] - - ["os", "", False, "UserConfigDir", "", "", "ReturnValue[0]", "environment", "manual"] - - ["os", "", False, "UserHomeDir", "", "", "ReturnValue[0]", "environment", "manual"] diff --git a/go/ql/lib/ext/path.filepath.model.json b/go/ql/lib/ext/path.filepath.model.json new file mode 100644 index 000000000000..27acb8645de2 --- /dev/null +++ b/go/ql/lib/ext/path.filepath.model.json @@ -0,0 +1,25 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["path/filepath", "", false, "Abs", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["path/filepath", "", false, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path/filepath", "", false, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path/filepath", "", false, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path/filepath", "", false, "EvalSymlinks", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["path/filepath", "", false, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path/filepath", "", false, "FromSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path/filepath", "", false, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["path/filepath", "", false, "Rel", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"], + ["path/filepath", "", false, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["path/filepath", "", false, "SplitList", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path/filepath", "", false, "ToSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path/filepath", "", false, "VolumeName", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/path.filepath.model.yml b/go/ql/lib/ext/path.filepath.model.yml deleted file mode 100644 index 15bcb7d386d8..000000000000 --- a/go/ql/lib/ext/path.filepath.model.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["path/filepath", "", False, "Abs", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "EvalSymlinks", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "FromSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "Glob", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Rel", "", "", "Argument[0..1]", "ReturnValue[0]", "taint", "manual"] - - ["path/filepath", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["path/filepath", "", False, "SplitList", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "ToSlash", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path/filepath", "", False, "VolumeName", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/path.model.json b/go/ql/lib/ext/path.model.json new file mode 100644 index 000000000000..0d1dba9e01d3 --- /dev/null +++ b/go/ql/lib/ext/path.model.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["path", "", false, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path", "", false, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path", "", false, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path", "", false, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["path", "", false, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/path.model.yml b/go/ql/lib/ext/path.model.yml deleted file mode 100644 index 5a494b24d7ca..000000000000 --- a/go/ql/lib/ext/path.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["path", "", False, "Base", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Clean", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Dir", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Ext", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["path", "", False, "Split", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] diff --git a/go/ql/lib/ext/reflect.model.json b/go/ql/lib/ext/reflect.model.json new file mode 100644 index 000000000000..16ae43637192 --- /dev/null +++ b/go/ql/lib/ext/reflect.model.json @@ -0,0 +1,49 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["reflect", "", false, "AppendSlice", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["reflect", "", false, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["reflect", "", false, "Indirect", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["reflect", "", false, "ValueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["reflect", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/reflect.model.yml b/go/ql/lib/ext/reflect.model.yml deleted file mode 100644 index 75b207f73a0f..000000000000 --- a/go/ql/lib/ext/reflect.model.yml +++ /dev/null @@ -1,42 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["reflect", "", False, "AppendSlice", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["reflect", "", False, "Copy", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["reflect", "", False, "Indirect", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["reflect", "", False, "ValueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["reflect", "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"] diff --git a/go/ql/lib/ext/regexp.model.json b/go/ql/lib/ext/regexp.model.json new file mode 100644 index 000000000000..8d973b7cc4dc --- /dev/null +++ b/go/ql/lib/ext/regexp.model.json @@ -0,0 +1,50 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["regexp", "", false, "Compile", "", "", "Argument[0]", "regex-use[c]", "manual"], + ["regexp", "", false, "CompilePOSIX", "", "", "Argument[0]", "regex-use[c]", "manual"], + ["regexp", "", false, "MustCompile", "", "", "Argument[0]", "regex-use[c]", "manual"], + ["regexp", "", false, "MustCompilePOSIX", "", "", "Argument[0]", "regex-use[c]", "manual"], + ["regexp", "", false, "Match", "", "", "Argument[0]", "regex-use[1]", "manual"], + ["regexp", "", false, "MatchReader", "", "", "Argument[0]", "regex-use[1]", "manual"], + ["regexp", "", false, "MatchString", "", "", "Argument[0]", "regex-use[1]", "manual"], + ["regexp", "Regexp", true, "Match", "", "", "Argument[receiver]", "regex-use[0]", "manual"], + ["regexp", "Regexp", true, "MatchReader", "", "", "Argument[receiver]", "regex-use[0]", "manual"], + ["regexp", "Regexp", true, "MatchString", "", "", "Argument[receiver]", "regex-use[0]", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["regexp", "", false, "QuoteMeta", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "Expand", "", "", "Argument[1..2]", "Argument[0]", "taint", "manual"], + ["regexp", "Regexp", true, "Expand", "", "", "Argument[1..2]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "ExpandString", "", "", "Argument[1..2]", "Argument[0]", "taint", "manual"], + ["regexp", "Regexp", true, "ExpandString", "", "", "Argument[1..2]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "Find", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "FindAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "FindAllString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "FindAllStringSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "FindAllSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "FindString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "FindStringSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "FindSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "ReplaceAll", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "ReplaceAllFunc", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "ReplaceAllLiteral", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "ReplaceAllLiteralString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "ReplaceAllString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "ReplaceAllStringFunc", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["regexp", "Regexp", true, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/regexp.model.yml b/go/ql/lib/ext/regexp.model.yml deleted file mode 100644 index 427d708b12e3..000000000000 --- a/go/ql/lib/ext/regexp.model.yml +++ /dev/null @@ -1,39 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["regexp", "", False, "Compile", "", "", "Argument[0]", "regex-use[c]", "manual"] - - ["regexp", "", False, "CompilePOSIX", "", "", "Argument[0]", "regex-use[c]", "manual"] - - ["regexp", "", False, "MustCompile", "", "", "Argument[0]", "regex-use[c]", "manual"] - - ["regexp", "", False, "MustCompilePOSIX", "", "", "Argument[0]", "regex-use[c]", "manual"] - - ["regexp", "", False, "Match", "", "", "Argument[0]", "regex-use[1]", "manual"] - - ["regexp", "", False, "MatchReader", "", "", "Argument[0]", "regex-use[1]", "manual"] - - ["regexp", "", False, "MatchString", "", "", "Argument[0]", "regex-use[1]", "manual"] - - ["regexp", "Regexp", True, "Match", "", "", "Argument[receiver]", "regex-use[0]", "manual"] - - ["regexp", "Regexp", True, "MatchReader", "", "", "Argument[receiver]", "regex-use[0]", "manual"] - - ["regexp", "Regexp", True, "MatchString", "", "", "Argument[receiver]", "regex-use[0]", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["regexp", "", False, "QuoteMeta", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "Expand", "", "", "Argument[1..2]", "Argument[0]", "taint", "manual"] - - ["regexp", "Regexp", True, "Expand", "", "", "Argument[1..2]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "ExpandString", "", "", "Argument[1..2]", "Argument[0]", "taint", "manual"] - - ["regexp", "Regexp", True, "ExpandString", "", "", "Argument[1..2]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "Find", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "FindAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "FindAllString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "FindAllStringSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "FindAllSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "FindString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "FindStringSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "FindSubmatch", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "ReplaceAll", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "ReplaceAllFunc", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "ReplaceAllLiteral", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "ReplaceAllLiteralString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "ReplaceAllString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "ReplaceAllStringFunc", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["regexp", "Regexp", True, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/slices.model.json b/go/ql/lib/ext/slices.model.json new file mode 100644 index 000000000000..ee145b90f8e0 --- /dev/null +++ b/go/ql/lib/ext/slices.model.json @@ -0,0 +1,38 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + // All should be modeled when we have a way to model iterators + // AppendSec should be modeled when we have a way to model iterators + // Backward should be modeled when we have a way to model iterators + // Chunk should be modeled when we have a way to model iterators + ["slices", "", false, "Clip", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Clone", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + // Collect should be modeled when we have a way to model iterators + ["slices", "", false, "Compact", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "CompactFunc", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Concat", "", "", "Argument[0].ArrayElement.ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Delete", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "DeleteFunc", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Grow", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Insert", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Insert", "", "", "Argument[2].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Max", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["slices", "", false, "MaxFunc", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["slices", "", false, "Min", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["slices", "", false, "MinFunc", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["slices", "", false, "Repeat", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Replace", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"], + ["slices", "", false, "Replace", "", "", "Argument[3].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] + ] + } + ] +} +// Sorted should be modeled when we have a way to model iterators +// SortedFunc should be modeled when we have a way to model iterators +// SortedStableFunc should be modeled when we have a way to model iterators +// Values should be modeled when we have a way to model iterators diff --git a/go/ql/lib/ext/slices.model.yml b/go/ql/lib/ext/slices.model.yml deleted file mode 100644 index 2023aeb3db23..000000000000 --- a/go/ql/lib/ext/slices.model.yml +++ /dev/null @@ -1,31 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - # All should be modeled when we have a way to model iterators - # AppendSec should be modeled when we have a way to model iterators - # Backward should be modeled when we have a way to model iterators - # Chunk should be modeled when we have a way to model iterators - - ["slices", "", False, "Clip", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Clone", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - # Collect should be modeled when we have a way to model iterators - - ["slices", "", False, "Compact", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "CompactFunc", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Concat", "", "", "Argument[0].ArrayElement.ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Delete", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "DeleteFunc", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Grow", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Insert", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Insert", "", "", "Argument[2].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Max", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["slices", "", False, "MaxFunc", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["slices", "", False, "Min", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["slices", "", False, "MinFunc", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["slices", "", False, "Repeat", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Replace", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - - ["slices", "", False, "Replace", "", "", "Argument[3].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - # Sorted should be modeled when we have a way to model iterators - # SortedFunc should be modeled when we have a way to model iterators - # SortedStableFunc should be modeled when we have a way to model iterators - # Values should be modeled when we have a way to model iterators diff --git a/go/ql/lib/ext/sort.model.json b/go/ql/lib/ext/sort.model.json new file mode 100644 index 000000000000..426729f3fd16 --- /dev/null +++ b/go/ql/lib/ext/sort.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["sort", "", false, "Reverse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/sort.model.yml b/go/ql/lib/ext/sort.model.yml deleted file mode 100644 index 36d0070de66d..000000000000 --- a/go/ql/lib/ext/sort.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["sort", "", False, "Reverse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/strconv.model.json b/go/ql/lib/ext/strconv.model.json new file mode 100644 index 000000000000..6d64a51fe1bd --- /dev/null +++ b/go/ql/lib/ext/strconv.model.json @@ -0,0 +1,21 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["strconv", "", false, "AppendQuote", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["strconv", "", false, "AppendQuoteToASCII", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["strconv", "", false, "AppendQuoteToGraphic", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["strconv", "", false, "Quote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strconv", "", false, "QuoteToASCII", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strconv", "", false, "QuoteToGraphic", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strconv", "", false, "QuotedPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["strconv", "", false, "Unquote", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["strconv", "", false, "UnquoteChar", "", "", "Argument[0]", "ReturnValue[2]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/strconv.model.yml b/go/ql/lib/ext/strconv.model.yml deleted file mode 100644 index 65203b121064..000000000000 --- a/go/ql/lib/ext/strconv.model.yml +++ /dev/null @@ -1,14 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["strconv", "", False, "AppendQuote", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "AppendQuoteToASCII", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "AppendQuoteToGraphic", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "Quote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "QuoteToASCII", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "QuoteToGraphic", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strconv", "", False, "QuotedPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["strconv", "", False, "Unquote", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["strconv", "", False, "UnquoteChar", "", "", "Argument[0]", "ReturnValue[2]", "taint", "manual"] diff --git a/go/ql/lib/ext/strings.model.json b/go/ql/lib/ext/strings.model.json new file mode 100644 index 000000000000..46e6ac721c6a --- /dev/null +++ b/go/ql/lib/ext/strings.model.json @@ -0,0 +1,59 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["strings", "", false, "Clone", "", "", "Argument[0]", "ReturnValue", "value", "manual"], + ["strings", "", false, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["strings", "", false, "CutLast", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"], + ["strings", "", false, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["strings", "", false, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["strings", "", false, "Fields", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"], + ["strings", "", false, "FieldsFunc", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"], + ["strings", "", false, "Join", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Join", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "", false, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "Builder", true, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["strings", "Builder", true, "WriteByte", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["strings", "Builder", true, "WriteRune", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["strings", "Reader", true, "ReadByte", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["strings", "Reader", true, "ReadRune", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["strings", "Reader", true, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"], + ["strings", "Replacer", true, "Replace", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["strings", "Replacer", true, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["strings", "Replacer", true, "WriteString", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"], + ["strings", "Replacer", true, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/strings.model.yml b/go/ql/lib/ext/strings.model.yml deleted file mode 100644 index 4a6d852baab4..000000000000 --- a/go/ql/lib/ext/strings.model.yml +++ /dev/null @@ -1,52 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["strings", "", False, "Clone", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["strings", "", False, "Cut", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["strings", "", False, "CutLast", "", "", "Argument[0]", "ReturnValue[0..1]", "taint", "manual"] - - ["strings", "", False, "CutPrefix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["strings", "", False, "CutSuffix", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["strings", "", False, "Fields", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["strings", "", False, "FieldsFunc", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["strings", "", False, "Join", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Join", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Map", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "NewReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Repeat", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Replace", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ReplaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ReplaceAll", "", "", "Argument[2]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Split", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "SplitAfter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "SplitAfterN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "SplitN", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Title", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToLower", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToLowerSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToTitle", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToTitleSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToUpper", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToUpperSpecial", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "ToValidUTF8", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "Trim", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimLeft", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimLeftFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimPrefix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimRight", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimRightFunc", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimSpace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "", False, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "Builder", True, "String", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["strings", "Builder", True, "WriteByte", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["strings", "Builder", True, "WriteRune", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["strings", "Reader", True, "ReadByte", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["strings", "Reader", True, "ReadRune", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["strings", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] - - ["strings", "Replacer", True, "Replace", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["strings", "Replacer", True, "Replace", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["strings", "Replacer", True, "WriteString", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] - - ["strings", "Replacer", True, "WriteString", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/sync.atomic.model.json b/go/ql/lib/ext/sync.atomic.model.json new file mode 100644 index 000000000000..ef851f395e10 --- /dev/null +++ b/go/ql/lib/ext/sync.atomic.model.json @@ -0,0 +1,36 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["sync/atomic", "", false, "AddUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["sync/atomic", "", false, "AddUintptr", "", "", "Argument[1]", "ReturnValue", "taint", "manual"], + ["sync/atomic", "", false, "CompareAndSwapPointer", "", "", "Argument[2]", "Argument[0]", "taint", "manual"], + ["sync/atomic", "", false, "CompareAndSwapUintptr", "", "", "Argument[2]", "Argument[0]", "taint", "manual"], + ["sync/atomic", "", false, "LoadPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["sync/atomic", "", false, "LoadUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["sync/atomic", "", false, "StorePointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["sync/atomic", "", false, "StoreUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["sync/atomic", "", false, "SwapPointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["sync/atomic", "", false, "SwapPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["sync/atomic", "", false, "SwapUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["sync/atomic", "", false, "SwapUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["sync/atomic", "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"] + ] + } + ] +} diff --git a/go/ql/lib/ext/sync.atomic.model.yml b/go/ql/lib/ext/sync.atomic.model.yml deleted file mode 100644 index 1dd7d995566a..000000000000 --- a/go/ql/lib/ext/sync.atomic.model.yml +++ /dev/null @@ -1,29 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["sync/atomic", "", False, "AddUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "AddUintptr", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "CompareAndSwapPointer", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "CompareAndSwapUintptr", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "LoadPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "LoadUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "StorePointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "StoreUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "SwapPointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["sync/atomic", "", False, "SwapUintptr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["sync/atomic", "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"] diff --git a/go/ql/lib/ext/sync.model.json b/go/ql/lib/ext/sync.model.json new file mode 100644 index 000000000000..56360ba0e7d1 --- /dev/null +++ b/go/ql/lib/ext/sync.model.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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[1]", "Argument[receiver]", "taint", "manual"], + ["sync", "Map", true, "LoadOrStore", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"], + ["sync", "Map", true, "Store", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"], + ["sync", "Map", true, "Swap", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"], + ["sync", "Map", true, "Swap", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"], + ["sync", "Pool", true, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"], + ["sync", "Pool", true, "Put", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/sync.model.yml b/go/ql/lib/ext/sync.model.yml deleted file mode 100644 index 5a318552f531..000000000000 --- a/go/ql/lib/ext/sync.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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[1]", "Argument[receiver]", "taint", "manual"] - - ["sync", "Map", True, "LoadOrStore", "", "", "Argument[1]", "ReturnValue[0]", "taint", "manual"] - - ["sync", "Map", True, "Store", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"] - - ["sync", "Map", True, "Swap", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - - ["sync", "Map", True, "Swap", "", "", "Argument[1]", "Argument[receiver]", "taint", "manual"] - - ["sync", "Pool", True, "Get", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - - ["sync", "Pool", True, "Put", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/syscall.model.json b/go/ql/lib/ext/syscall.model.json new file mode 100644 index 000000000000..1e4010a6a4e5 --- /dev/null +++ b/go/ql/lib/ext/syscall.model.json @@ -0,0 +1,43 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["syscall", "", false, "Exec", "", "", "Argument[0]", "command-injection", "manual"], + ["syscall", "", false, "ForkExec", "", "", "Argument[0]", "command-injection", "manual"], + ["syscall", "", false, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"], + ["syscall", "", false, "CreateProcess", "", "", "Argument[0]", "command-injection", "manual"], + ["syscall", "", false, "CreateProcessAsUser", "", "", "Argument[1]", "command-injection", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["syscall", "", false, "BytePtrFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["syscall", "", false, "ByteSliceFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["syscall", "", false, "StringBytePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["syscall", "", false, "StringByteSlice", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["syscall", "", false, "StringSlicePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["syscall", "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"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["syscall", "", false, "Environ", "", "", "ReturnValue", "environment", "manual"], + ["syscall", "", false, "Getenv", "", "", "ReturnValue[0]", "environment", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/syscall.model.yml b/go/ql/lib/ext/syscall.model.yml deleted file mode 100644 index 948cca3e2987..000000000000 --- a/go/ql/lib/ext/syscall.model.yml +++ /dev/null @@ -1,28 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["syscall", "", False, "Exec", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "ForkExec", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "StartProcess", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "CreateProcess", "", "", "Argument[0]", "command-injection", "manual"] - - ["syscall", "", False, "CreateProcessAsUser", "", "", "Argument[1]", "command-injection", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["syscall", "", False, "BytePtrFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["syscall", "", False, "ByteSliceFromString", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["syscall", "", False, "StringBytePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["syscall", "", False, "StringByteSlice", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["syscall", "", False, "StringSlicePtr", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["syscall", "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"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["syscall", "", False, "Environ", "", "", "ReturnValue", "environment", "manual"] - - ["syscall", "", False, "Getenv", "", "", "ReturnValue[0]", "environment", "manual"] diff --git a/go/ql/lib/ext/text.scanner.model.json b/go/ql/lib/ext/text.scanner.model.json new file mode 100644 index 000000000000..c5498792b34e --- /dev/null +++ b/go/ql/lib/ext/text.scanner.model.json @@ -0,0 +1,15 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["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[receiver]", "ReturnValue", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/text.scanner.model.yml b/go/ql/lib/ext/text.scanner.model.yml deleted file mode 100644 index 8eeb48740d15..000000000000 --- a/go/ql/lib/ext/text.scanner.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["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[receiver]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/ext/text.tabwriter.model.json b/go/ql/lib/ext/text.tabwriter.model.json new file mode 100644 index 000000000000..06a7c0bbbc3d --- /dev/null +++ b/go/ql/lib/ext/text.tabwriter.model.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["text/tabwriter", "Writer", true, "Init", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/text.tabwriter.model.yml b/go/ql/lib/ext/text.tabwriter.model.yml deleted file mode 100644 index ae29881c309b..000000000000 --- a/go/ql/lib/ext/text.tabwriter.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["text/tabwriter", "Writer", True, "Init", "", "", "Argument[receiver]", "Argument[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/text.template.model.json b/go/ql/lib/ext/text.template.model.json new file mode 100644 index 000000000000..1671ebb85b18 --- /dev/null +++ b/go/ql/lib/ext/text.template.model.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["text/template", "", false, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["text/template", "", false, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"], + ["text/template", "", false, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"], + ["text/template", "", false, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + ] + } + ] +} +// - ["text/template", "Template", True, "Execute", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] # Implemented in QL to provide an arbitrary content read from the input. +// - ["text/template", "Template", True, "ExecuteTemplate", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] # Implemented in QL to provide an arbitrary content read from the input. diff --git a/go/ql/lib/ext/text.template.model.yml b/go/ql/lib/ext/text.template.model.yml deleted file mode 100644 index 3ff0321a43c2..000000000000 --- a/go/ql/lib/ext/text.template.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["text/template", "", False, "HTMLEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["text/template", "", False, "HTMLEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["text/template", "", False, "JSEscape", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["text/template", "", False, "JSEscapeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] -# - ["text/template", "Template", True, "Execute", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] # Implemented in QL to provide an arbitrary content read from the input. -# - ["text/template", "Template", True, "ExecuteTemplate", "", "", "Argument[2]", "Argument[0]", "taint", "manual"] # Implemented in QL to provide an arbitrary content read from the input. diff --git a/go/ql/lib/ext/weak.model.json b/go/ql/lib/ext/weak.model.json new file mode 100644 index 000000000000..9a27fa36e4d3 --- /dev/null +++ b/go/ql/lib/ext/weak.model.json @@ -0,0 +1,14 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["weak", "", false, "Make", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"], + ["weak", "Pointer", false, "Value", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/weak.model.yml b/go/ql/lib/ext/weak.model.yml deleted file mode 100644 index 7ae865ce2cb1..000000000000 --- a/go/ql/lib/ext/weak.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["weak", "", False, "Make", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - - ["weak", "Pointer", False, "Value", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] diff --git a/go/ql/lib/ext/xorm.io.xorm.model.json b/go/ql/lib/ext/xorm.io.xorm.model.json new file mode 100644 index 000000000000..6edcb4806453 --- /dev/null +++ b/go/ql/lib/ext/xorm.io.xorm.model.json @@ -0,0 +1,60 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "packageGrouping" + }, + "data": [ + ["xorm", "xorm.io/xorm"], + ["xorm", "github.com/go-xorm/xorm"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["group:xorm", "Engine", true, "Alias", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "And", "", "", "Argument[0]", "sql-injection", "manual"], + // Engine.Exec has to be modeled in QL to select only the first syntactic argument + ["group:xorm", "Engine", true, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "Having", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "In", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "Join", "", "", "Argument[0..2]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "NotIn", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "Or", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"], + // Engine.Query, Engine.QueryInterface and Engine.QueryString have to be modeled in QL to select only the first syntactic argument + ["group:xorm", "Engine", true, "Select", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "SetExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "SQL", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "Sum", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "Sums", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "SumInt", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "SumsInt", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Engine", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "Alias", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "And", "", "", "Argument[0]", "sql-injection", "manual"], + // Session.Exec has to be modeled in QL to select only the first syntactic argument + ["group:xorm", "Session", true, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "Having", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "In", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "Join", "", "", "Argument[0..2]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "NotIn", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "Or", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"], + // Session.Query, Session.QueryInterface and Session.QueryString have to be modeled in QL to select only the first syntactic argument + ["group:xorm", "Session", true, "Select", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "SetExpr", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "SQL", "", "", "Argument[0]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "Sum", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "Sums", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "SumInt", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "SumsInt", "", "", "Argument[1]", "sql-injection", "manual"], + ["group:xorm", "Session", true, "Where", "", "", "Argument[0]", "sql-injection", "manual"] + ] + } + ] +} diff --git a/go/ql/lib/ext/xorm.io.xorm.model.yml b/go/ql/lib/ext/xorm.io.xorm.model.yml deleted file mode 100644 index 5cf1ac4f5d73..000000000000 --- a/go/ql/lib/ext/xorm.io.xorm.model.yml +++ /dev/null @@ -1,49 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: packageGrouping - data: - - ["xorm", "xorm.io/xorm"] - - ["xorm", "github.com/go-xorm/xorm"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["group:xorm", "Engine", True, "Alias", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "And", "", "", "Argument[0]", "sql-injection", "manual"] - # Engine.Exec has to be modeled in QL to select only the first syntactic argument - - ["group:xorm", "Engine", True, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "Having", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "In", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "Join", "", "", "Argument[0..2]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "NotIn", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "Or", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"] - # Engine.Query, Engine.QueryInterface and Engine.QueryString have to be modeled in QL to select only the first syntactic argument - - ["group:xorm", "Engine", True, "Select", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "SetExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "SQL", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "Sum", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "Sums", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "SumInt", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "SumsInt", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Engine", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "Alias", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "And", "", "", "Argument[0]", "sql-injection", "manual"] - # Session.Exec has to be modeled in QL to select only the first syntactic argument - - ["group:xorm", "Session", True, "GroupBy", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "Having", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "In", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "Join", "", "", "Argument[0..2]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "NotIn", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "Or", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "OrderBy", "", "", "Argument[0]", "sql-injection", "manual"] - # Session.Query, Session.QueryInterface and Session.QueryString have to be modeled in QL to select only the first syntactic argument - - ["group:xorm", "Session", True, "Select", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "SetExpr", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "SQL", "", "", "Argument[0]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "Sum", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "Sums", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "SumInt", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "SumsInt", "", "", "Argument[1]", "sql-injection", "manual"] - - ["group:xorm", "Session", True, "Where", "", "", "Argument[0]", "sql-injection", "manual"] diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 728d6fbe2263..fd382ab863ba 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -16,5 +16,6 @@ dependencies: codeql/util: ${workspace} dataExtensions: - ext/*.model.yml + - ext/*.model.json warnOnImplicitThis: true compileForOverlayEval: true From d5ac503c3f40f3d483fcc0a1af737e5aeac18b5d Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Tue, 10 Nov 2026 14:32:01 +0000 Subject: [PATCH 2/2] Go: convert test data extensions to JSON --- .../go/controlflow/Guards/Guards.ext.json | 18 +++++ .../go/controlflow/Guards/Guards.ext.yml | 11 ---- .../mad_I1_subtypes_false.ext.json | 31 +++++++++ .../mad_I1_subtypes_false.ext.yml | 16 ----- .../mad_I1_subtypes_true.ext.json | 31 +++++++++ .../mad_I1_subtypes_true.ext.yml | 16 ----- .../mad_I2_subtypes_false.ext.json | 31 +++++++++ .../mad_I2_subtypes_false.ext.yml | 16 ----- .../mad_I2_subtypes_true.ext.json | 31 +++++++++ .../mad_I2_subtypes_true.ext.yml | 16 ----- .../mad_IEmbedI1_subtypes_true.ext.json | 31 +++++++++ .../mad_IEmbedI1_subtypes_true.ext.yml | 16 ----- .../mad_IEmbedI2_subtypes_true.ext.json | 31 +++++++++ .../mad_IEmbedI2_subtypes_true.ext.yml | 16 ----- .../mad_PImplEmbedI1_subtypes_true.ext.json | 33 ++++++++++ .../mad_PImplEmbedI1_subtypes_true.ext.yml | 18 ----- .../mad_PImplEmbedI2_subtypes_true.ext.json | 31 +++++++++ .../mad_PImplEmbedI2_subtypes_true.ext.yml | 16 ----- .../mad_S1_subtypes_false.ext.json | 33 ++++++++++ .../mad_S1_subtypes_false.ext.yml | 18 ----- .../mad_S1_subtypes_true.ext.json | 33 ++++++++++ .../mad_S1_subtypes_true.ext.yml | 18 ----- .../mad_SEmbedI1_subtypes_true.ext.json | 33 ++++++++++ .../mad_SEmbedI1_subtypes_true.ext.yml | 18 ----- .../mad_SEmbedI2_subtypes_true.ext.json | 31 +++++++++ .../mad_SEmbedI2_subtypes_true.ext.yml | 16 ----- .../mad_SEmbedP1_subtypes_true.ext.json | 33 ++++++++++ .../mad_SEmbedP1_subtypes_true.ext.yml | 18 ----- .../mad_SEmbedP2_subtypes_true.ext.json | 31 +++++++++ .../mad_SEmbedP2_subtypes_true.ext.yml | 16 ----- .../mad_SEmbedPtrP1_subtypes_true.ext.json | 33 ++++++++++ .../mad_SEmbedPtrP1_subtypes_true.ext.yml | 18 ----- .../mad_SEmbedPtrP2_subtypes_true.ext.json | 31 +++++++++ .../mad_SEmbedPtrP2_subtypes_true.ext.yml | 16 ----- .../mad_SEmbedPtrS1_subtypes_true.ext.json | 33 ++++++++++ .../mad_SEmbedPtrS1_subtypes_true.ext.yml | 18 ----- .../mad_SEmbedPtrS2_subtypes_true.ext.json | 31 +++++++++ .../mad_SEmbedPtrS2_subtypes_true.ext.yml | 16 ----- .../mad_SEmbedS1_subtypes_true.ext.json | 33 ++++++++++ .../mad_SEmbedS1_subtypes_true.ext.yml | 18 ----- .../mad_SEmbedS2_subtypes_true.ext.json | 31 +++++++++ .../mad_SEmbedS2_subtypes_true.ext.yml | 16 ----- .../mad_SImplEmbedI1_subtypes_true.ext.json | 33 ++++++++++ .../mad_SImplEmbedI1_subtypes_true.ext.yml | 18 ----- .../mad_SImplEmbedI2_subtypes_true.ext.json | 31 +++++++++ .../mad_SImplEmbedI2_subtypes_true.ext.yml | 16 ----- .../mad_SImplEmbedS1_subtypes_true.ext.json | 33 ++++++++++ .../mad_SImplEmbedS1_subtypes_true.ext.yml | 18 ----- .../mad_SImplEmbedS2_subtypes_true.ext.json | 31 +++++++++ .../mad_SImplEmbedS2_subtypes_true.ext.yml | 16 ----- .../ExternalFlowVarArgs/Flows.ext.json | 17 +++++ .../ExternalFlowVarArgs/Flows.ext.yml | 10 --- .../ExternalTaintFlow/completetest.ext.json | 66 +++++++++++++++++++ .../ExternalTaintFlow/completetest.ext.yml | 47 ------------- .../dataflow/ExternalTaintFlow/sinks.ext.json | 16 +++++ .../dataflow/ExternalTaintFlow/sinks.ext.yml | 9 --- .../dataflow/ExternalTaintFlow/srcs.ext.json | 20 ++++++ .../dataflow/ExternalTaintFlow/srcs.ext.yml | 13 ---- .../dataflow/ExternalTaintFlow/steps.ext.json | 31 +++++++++ .../dataflow/ExternalTaintFlow/steps.ext.yml | 20 ------ .../ExternalValueFlow/completetest.ext.json | 66 +++++++++++++++++++ .../ExternalValueFlow/completetest.ext.yml | 47 ------------- .../dataflow/ExternalValueFlow/sinks.ext.json | 16 +++++ .../dataflow/ExternalValueFlow/sinks.ext.yml | 9 --- .../dataflow/ExternalValueFlow/srcs.ext.json | 20 ++++++ .../dataflow/ExternalValueFlow/srcs.ext.yml | 13 ---- .../dataflow/ExternalValueFlow/steps.ext.json | 31 +++++++++ .../dataflow/ExternalValueFlow/steps.ext.yml | 20 ------ .../threat-models-flowtest1.ext.json | 23 +++++++ .../threat-models-flowtest1.ext.yml | 15 ----- .../threat-models-flowtest2.ext.json | 25 +++++++ .../threat-models-flowtest2.ext.yml | 16 ----- .../threat-models-flowtest3.ext.json | 25 +++++++ .../threat-models-flowtest3.ext.yml | 16 ----- .../threat-models-flowtest4.ext.json | 25 +++++++ .../threat-models-flowtest4.ext.yml | 16 ----- .../threat-models-flowtest5.ext.json | 26 ++++++++ .../threat-models-flowtest5.ext.yml | 17 ----- .../threat-models-flowtest6.ext.json | 26 ++++++++ .../threat-models-flowtest6.ext.yml | 17 ----- .../VarArgsWithExternalFlow/Flows.ext.json | 36 ++++++++++ .../VarArgsWithExternalFlow/Flows.ext.yml | 21 ------ .../local/commandargs/test.ext.json | 13 ++++ .../local/commandargs/test.ext.yml | 6 -- .../local/database/source.ext.json | 22 +++++++ .../flowsources/local/database/source.ext.yml | 11 ---- .../flowsources/local/database/test.ext.json | 22 +++++++ .../flowsources/local/database/test.ext.yml | 13 ---- .../local/environment/test.ext.json | 13 ++++ .../local/environment/test.ext.yml | 6 -- .../flowsources/local/file/test.ext.json | 13 ++++ .../flowsources/local/file/test.ext.yml | 6 -- .../flowsources/local/stdin/source.ext.json | 13 ++++ .../flowsources/local/stdin/source.ext.yml | 7 -- .../flowsources/local/stdin/test.ext.json | 13 ++++ .../flowsources/local/stdin/test.ext.yml | 7 -- .../Security/CWE-918/RequestForgery.ext.json | 13 ++++ .../Security/CWE-918/RequestForgery.ext.yml | 6 -- 98 files changed, 1373 insertions(+), 783 deletions(-) create mode 100644 go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.yml create mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.json delete mode 100644 go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.yml create mode 100644 go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.json delete mode 100644 go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.yml diff --git a/go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.json b/go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.json new file mode 100644 index 000000000000..ac8b17647c04 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.json @@ -0,0 +1,18 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "barrierGuardModel" + }, + "data": [ + ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", false, "modelBoolGuard", "", "", "Argument[0]", "true", "model-bool", "manual"], + ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", false, "modelZeroGuard", "", "", "Argument[0]", "zero", "model-zero", "manual"], + ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", false, "modelNotZeroGuard", "", "", "Argument[0]", "not-zero", "model-not-zero", "manual"], + ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", false, "modelNullGuard", "", "", "Argument[0]", "null", "model-null", "manual"], + ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", false, "modelNotNullGuard", "", "", "Argument[0]", "not-null", "model-not-null", "manual"], + ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", false, "modelExceptionGuard", "", "", "Argument[0]", "no-exception", "model-no-exception", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.yml b/go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.yml deleted file mode 100644 index 4635146b411c..000000000000 --- a/go/ql/test/library-tests/semmle/go/controlflow/Guards/Guards.ext.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: barrierGuardModel - data: - - ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", False, "modelBoolGuard", "", "", "Argument[0]", "true", "model-bool", "manual"] - - ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", False, "modelZeroGuard", "", "", "Argument[0]", "zero", "model-zero", "manual"] - - ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", False, "modelNotZeroGuard", "", "", "Argument[0]", "not-zero", "model-not-zero", "manual"] - - ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", False, "modelNullGuard", "", "", "Argument[0]", "null", "model-null", "manual"] - - ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", False, "modelNotNullGuard", "", "", "Argument[0]", "not-null", "model-not-null", "manual"] - - ["github.com/github/codeql-go/ql/test/library-tests/semmle/go/controlflow/Guards", "", False, "modelExceptionGuard", "", "", "Argument[0]", "no-exception", "model-no-exception", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.json new file mode 100644 index 000000000000..61479b274237 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "I1", false, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "I1", false, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "I1", false, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml deleted file mode 100644 index a50fb9449a35..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_false.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "I1", False, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "I1", False, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "I1", False, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.json new file mode 100644 index 000000000000..6c835a6e9bf7 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "I1", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "I1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "I1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.yml deleted file mode 100644 index 4b59e9a255f2..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I1_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "I1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "I1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "I1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.json new file mode 100644 index 000000000000..5bf9b8eac248 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "I2", false, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "I2", false, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "I2", false, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml deleted file mode 100644 index 660eb326eaaf..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_false.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "I2", False, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "I2", False, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "I2", False, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.json new file mode 100644 index 000000000000..4fdf96173843 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "I2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "I2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "I2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.yml deleted file mode 100644 index 8d2c2ff522ff..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_I2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "I2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "I2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "I2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.json new file mode 100644 index 000000000000..a1f3c311d240 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "IEmbedI1", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "IEmbedI1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "IEmbedI1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.yml deleted file mode 100644 index faf2e6ba6063..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI1_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "IEmbedI1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "IEmbedI1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "IEmbedI1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.json new file mode 100644 index 000000000000..209496c6f3ef --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "IEmbedI2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "IEmbedI2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "IEmbedI2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.yml deleted file mode 100644 index 066e1846fbf6..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_IEmbedI2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "IEmbedI2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "IEmbedI2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "IEmbedI2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.json new file mode 100644 index 000000000000..697cb30c5be3 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "PImplEmbedI1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "PImplEmbedI1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "PImplEmbedI1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "PImplEmbedI1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "PImplEmbedI1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.yml deleted file mode 100644 index b7a7badf0979..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "PImplEmbedI1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "PImplEmbedI1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "PImplEmbedI1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "PImplEmbedI1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "PImplEmbedI1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.json new file mode 100644 index 000000000000..01b63ea69f2c --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "PImplEmbedI2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "PImplEmbedI2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "PImplEmbedI2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.yml deleted file mode 100644 index 2a10c84a20fa..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_PImplEmbedI2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "PImplEmbedI2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "PImplEmbedI2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "PImplEmbedI2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.json new file mode 100644 index 000000000000..6b1810849696 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "S1", false, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "S1", false, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "S1", false, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "S1", false, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "S1", false, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml deleted file mode 100644 index 804a920b3242..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_false.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "S1", False, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "S1", False, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "S1", False, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "S1", False, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "S1", False, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.json new file mode 100644 index 000000000000..c4b55312d6c5 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "S1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "S1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "S1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "S1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "S1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.yml deleted file mode 100644 index 14f2914b9421..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_S1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "S1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "S1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "S1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "S1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "S1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.json new file mode 100644 index 000000000000..899c1c983343 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedI1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedI1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedI1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedI1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedI1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.yml deleted file mode 100644 index a210d4213261..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedI1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedI1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedI1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedI1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedI1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.json new file mode 100644 index 000000000000..55f940410e60 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedI2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedI2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedI2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.yml deleted file mode 100644 index f1378ba6fa23..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedI2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedI2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedI2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedI2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.json new file mode 100644 index 000000000000..3ba5faf648ba --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedP1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedP1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedP1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedP1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedP1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.yml deleted file mode 100644 index 8a927bde1adf..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedP1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedP1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedP1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedP1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedP1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.json new file mode 100644 index 000000000000..a320707812ea --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedP2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedP2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedP2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.yml deleted file mode 100644 index 6357f141b117..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedP2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedP2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedP2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedP2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.json new file mode 100644 index 000000000000..64280f819dcc --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrP1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedPtrP1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrP1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrP1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedPtrP1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.yml deleted file mode 100644 index e34aa2af5351..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrP1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedPtrP1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrP1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrP1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedPtrP1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.json new file mode 100644 index 000000000000..6c96f87c005e --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrP2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrP2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrP2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.yml deleted file mode 100644 index 7c03fc22bcbb..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrP2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrP2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrP2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrP2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.json new file mode 100644 index 000000000000..6924abb3bab2 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrS1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedPtrS1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrS1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrS1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedPtrS1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.yml deleted file mode 100644 index 81a3500562d3..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrS1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedPtrS1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrS1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrS1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedPtrS1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.json new file mode 100644 index 000000000000..d61984a94e68 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrS2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrS2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedPtrS2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.yml deleted file mode 100644 index 50c72d96ce18..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedPtrS2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrS2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrS2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedPtrS2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.json new file mode 100644 index 000000000000..b1d8e845876e --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedS1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedS1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedS1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedS1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "SEmbedS1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.yml deleted file mode 100644 index 35baccbe09f6..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedS1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedS1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedS1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedS1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "SEmbedS1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.json new file mode 100644 index 000000000000..ac0815ea34a7 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedS2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedS2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SEmbedS2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.yml deleted file mode 100644 index 4772c9de698e..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SEmbedS2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SEmbedS2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SEmbedS2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SEmbedS2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.json new file mode 100644 index 000000000000..3f4369f36537 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedI1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "SImplEmbedI1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedI1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedI1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "SImplEmbedI1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.yml deleted file mode 100644 index f75fc2f7652f..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SImplEmbedI1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "SImplEmbedI1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SImplEmbedI1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SImplEmbedI1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "SImplEmbedI1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.json new file mode 100644 index 000000000000..dea0671b4423 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedI2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedI2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedI2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.yml deleted file mode 100644 index 65cba7782506..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedI2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SImplEmbedI2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SImplEmbedI2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SImplEmbedI2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.json new file mode 100644 index 000000000000..f1baaae0234e --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.json @@ -0,0 +1,33 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedS1", true, "Source", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "SImplEmbedS1", true, "SourceField", "", "", "", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedS1", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedS1", true, "Sink", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "SImplEmbedS1", true, "SinkField", "", "", "", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.yml deleted file mode 100644 index 30d240d4a2e4..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS1_subtypes_true.ext.yml +++ /dev/null @@ -1,18 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SImplEmbedS1", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "SImplEmbedS1", True, "SourceField", "", "", "", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SImplEmbedS1", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SImplEmbedS1", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "SImplEmbedS1", True, "SinkField", "", "", "", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.json new file mode 100644 index 000000000000..ec932b6e5ffb --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedS2", true, "Source", "", "", "ReturnValue", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedS2", true, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "SImplEmbedS2", true, "Sink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.yml deleted file mode 100644 index 6873efc4258a..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/mad_SImplEmbedS2_subtypes_true.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "SImplEmbedS2", True, "Source", "", "", "ReturnValue", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "SImplEmbedS2", True, "Step", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "SImplEmbedS2", True, "Sink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.json new file mode 100644 index 000000000000..887fcc67defd --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.json @@ -0,0 +1,17 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "FunctionWithParameter", "", "", "Argument[0]", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithSliceParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithVarArgsParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithSliceOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithVarArgsOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.yml deleted file mode 100644 index c4c770870494..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ext.yml +++ /dev/null @@ -1,10 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "", False, "FunctionWithParameter", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithSliceParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithVarArgsParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithSliceOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithVarArgsOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.json new file mode 100644 index 000000000000..66e7866e6b9b --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.json @@ -0,0 +1,66 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "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", "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"], + ["github.com/nonexistent/test", "", false, "StepArgResCollectionContent", "", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgCollectionContentRes", "", "", "Argument[0].Element", "ReturnValue", "taint", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgResMapKeyContent", "", "", "Argument[0]", "ReturnValue.MapKey", "taint", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgMapKeyContentRes", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgResMapValueContent", "", "", "Argument[0]", "ReturnValue.MapValue", "taint", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgMapValueContentRes", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"], + ["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[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", "", false, "SourceVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "A", false, "Src1", "", "", "ReturnValue", "qltest", "manual"], + ["semmle.go.Packages", "", true, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "SinkVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "B", false, "Sink1", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "B", false, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.yml deleted file mode 100644 index 0ed8f80bbb60..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/completetest.ext.yml +++ /dev/null @@ -1,47 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - 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", "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"] - - ["github.com/nonexistent/test", "", False, "StepArgResCollectionContent", "", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgCollectionContentRes", "", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgResMapKeyContent", "", "", "Argument[0]", "ReturnValue.MapKey", "taint", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgMapKeyContentRes", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgResMapValueContent", "", "", "Argument[0]", "ReturnValue.MapValue", "taint", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgMapValueContentRes", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["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[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", "", False, "SourceVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"] - - ["semmle.go.Packages", "", True, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "", False, "SinkVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.json new file mode 100644 index 000000000000..96cbcd676ba6 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "SinkVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "B", false, "Sink1", "", "", "Argument[0]", "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"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.yml deleted file mode 100644 index ec19b822a8c1..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.ext.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "", False, "SinkVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "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"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.json new file mode 100644 index 000000000000..fcca29b45793 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "SourceVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "A", false, "Src1", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "A", false, "Src2", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "A", true, "Src2", "", "", "ReturnValue", "qltest-w-subtypes", "manual"], + ["github.com/nonexistent/test", "A", false, "SrcArg", "", "", "Argument[0]", "qltest-arg", "manual"], + ["github.com/nonexistent/test", "A", false, "Src3", "", "", "ReturnValue[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "A", true, "Src3", "", "", "ReturnValue[1]", "qltest-w-subtypes", "manual"], + ["semmle.go.Packages", "", true, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.yml deleted file mode 100644 index ed050d27ec99..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.ext.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "", False, "SourceVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src2", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", True, "Src2", "", "", "ReturnValue", "qltest-w-subtypes", "manual"] - - ["github.com/nonexistent/test", "A", False, "SrcArg", "", "", "Argument[0]", "qltest-arg", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src3", "", "", "ReturnValue[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", True, "Src3", "", "", "ReturnValue[1]", "qltest-w-subtypes", "manual"] - - ["semmle.go.Packages", "", True, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.json new file mode 100644 index 000000000000..cbaac193aab7 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["fixed-version: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", "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"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.yml deleted file mode 100644 index 1f8d6321606f..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/steps.ext.yml +++ /dev/null @@ -1,20 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["fixed-version: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", "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"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.json new file mode 100644 index 000000000000..7ac2b541baad --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.json @@ -0,0 +1,66 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "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", "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"], + ["github.com/nonexistent/test", "", false, "StepArgResCollectionContent", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgCollectionContentRes", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgResMapKeyContent", "", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgMapKeyContentRes", "", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgResMapValueContent", "", "", "Argument[0]", "ReturnValue.MapValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "StepArgMapValueContentRes", "", "", "Argument[0].MapValue", "ReturnValue", "value", "manual"], + ["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[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", "", false, "SourceVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "A", false, "Src1", "", "", "ReturnValue", "qltest", "manual"], + ["semmle.go.Packages", "", true, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "SinkVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "B", false, "Sink1", "", "", "Argument[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "B", false, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.yml deleted file mode 100644 index bd1fcb365a07..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/completetest.ext.yml +++ /dev/null @@ -1,47 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - 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", "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"] - - ["github.com/nonexistent/test", "", False, "StepArgResCollectionContent", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgCollectionContentRes", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgResMapKeyContent", "", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgMapKeyContentRes", "", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgResMapValueContent", "", "", "Argument[0]", "ReturnValue.MapValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "StepArgMapValueContentRes", "", "", "Argument[0].MapValue", "ReturnValue", "value", "manual"] - - ["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[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", "", False, "SourceVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"] - - ["semmle.go.Packages", "", True, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "", False, "SinkVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.json new file mode 100644 index 000000000000..96cbcd676ba6 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.json @@ -0,0 +1,16 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "SinkVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "B", false, "Sink1", "", "", "Argument[0]", "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"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.yml deleted file mode 100644 index ec19b822a8c1..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.ext.yml +++ /dev/null @@ -1,9 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "", False, "SinkVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "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"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.json new file mode 100644 index 000000000000..fcca29b45793 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.json @@ -0,0 +1,20 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "SourceVariable", "", "", "", "qltest", "manual"], + ["github.com/nonexistent/test", "A", false, "Src1", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "A", false, "Src2", "", "", "ReturnValue", "qltest", "manual"], + ["github.com/nonexistent/test", "A", true, "Src2", "", "", "ReturnValue", "qltest-w-subtypes", "manual"], + ["github.com/nonexistent/test", "A", false, "SrcArg", "", "", "Argument[0]", "qltest-arg", "manual"], + ["github.com/nonexistent/test", "A", false, "Src3", "", "", "ReturnValue[0]", "qltest", "manual"], + ["github.com/nonexistent/test", "A", true, "Src3", "", "", "ReturnValue[1]", "qltest-w-subtypes", "manual"], + ["semmle.go.Packages", "", true, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.yml deleted file mode 100644 index ed050d27ec99..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.ext.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "", False, "SourceVariable", "", "", "", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src2", "", "", "ReturnValue", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", True, "Src2", "", "", "ReturnValue", "qltest-w-subtypes", "manual"] - - ["github.com/nonexistent/test", "A", False, "SrcArg", "", "", "Argument[0]", "qltest-arg", "manual"] - - ["github.com/nonexistent/test", "A", False, "Src3", "", "", "ReturnValue[0]", "qltest", "manual"] - - ["github.com/nonexistent/test", "A", True, "Src3", "", "", "ReturnValue[1]", "qltest-w-subtypes", "manual"] - - ["semmle.go.Packages", "", True, "srcParam", "", "", "Parameter[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.json new file mode 100644 index 000000000000..1f4bb7462cb1 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.json @@ -0,0 +1,31 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "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", "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"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.yml deleted file mode 100644 index 5648c439e268..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/steps.ext.yml +++ /dev/null @@ -1,20 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - 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", "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"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.json new file mode 100644 index 000000000000..d28b3be14872 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.json @@ -0,0 +1,23 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/sources", "", false, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"], + ["github.com/nonexistent/sources", "", false, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCustom", "", "", "ReturnValue", "custom", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml deleted file mode 100644 index e64313916ce8..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.ext.yml +++ /dev/null @@ -1,15 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: [] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.json new file mode 100644 index 000000000000..4f01f898751b --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.json @@ -0,0 +1,25 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["database", true, 0] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/sources", "", false, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"], + ["github.com/nonexistent/sources", "", false, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCustom", "", "", "ReturnValue", "custom", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml deleted file mode 100644 index fe7569e96003..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["database", true, 0] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.json new file mode 100644 index 000000000000..64d314fee21e --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.json @@ -0,0 +1,25 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["local", true, 0] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/sources", "", false, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"], + ["github.com/nonexistent/sources", "", false, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCustom", "", "", "ReturnValue", "custom", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml deleted file mode 100644 index bb7762a5467e..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["local", true, 0] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.json new file mode 100644 index 000000000000..fd3b56c72ad7 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.json @@ -0,0 +1,25 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["all", true, 0] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/sources", "", false, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"], + ["github.com/nonexistent/sources", "", false, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCustom", "", "", "ReturnValue", "custom", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml deleted file mode 100644 index 4754b0ef1f55..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.ext.yml +++ /dev/null @@ -1,16 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["all", true, 0] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.json new file mode 100644 index 000000000000..d783197639c1 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.json @@ -0,0 +1,26 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["environment", true, 0], + ["commandargs", true, 0] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/sources", "", false, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"], + ["github.com/nonexistent/sources", "", false, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCustom", "", "", "ReturnValue", "custom", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml deleted file mode 100644 index 713491d492e3..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.ext.yml +++ /dev/null @@ -1,17 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["environment", true, 0] - - ["commandargs", true, 0] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.json new file mode 100644 index 000000000000..8e1769fad796 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.json @@ -0,0 +1,26 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["local", true, 0], + ["environment", false, 1] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/sources", "", false, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"], + ["github.com/nonexistent/sources", "", false, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCustom", "", "", "ReturnValue", "custom", "manual"], + ["github.com/nonexistent/sources", "", false, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml deleted file mode 100644 index cc5a7847fd84..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.ext.yml +++ /dev/null @@ -1,17 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["local", true, 0] - - ["environment", false, 1] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/sources", "", False, "ExecuteQuery", "", "", "ReturnValue", "database", "manual"] - - ["github.com/nonexistent/sources", "", False, "ReadEnvironment", "", "", "ReturnValue", "environment", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCustom", "", "", "ReturnValue", "custom", "manual"] - - ["github.com/nonexistent/sources", "", False, "GetCliArg", "", "", "ReturnValue", "commandargs", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.json new file mode 100644 index 000000000000..fe89b2c31ce9 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.json @@ -0,0 +1,36 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "summaryModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "FunctionWithParameter", "", "", "Argument[0]", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithSliceParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithVarArgsParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithVarArgsOutParameter", "", "", "Argument[0]", "Argument[1].ArrayElement", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithSliceOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"], + ["github.com/nonexistent/test", "", false, "FunctionWithVarArgsOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "VariadicSource", "", "", "Argument[0]", "qltest", "manual"] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sinkModel" + }, + "data": [ + ["github.com/nonexistent/test", "", false, "VariadicSink", "", "", "Argument[0]", "qltest", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.yml deleted file mode 100644 index ca3f9559536a..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/VarArgsWithExternalFlow/Flows.ext.yml +++ /dev/null @@ -1,21 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: summaryModel - data: - - ["github.com/nonexistent/test", "", False, "FunctionWithParameter", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithSliceParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithVarArgsParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithVarArgsOutParameter", "", "", "Argument[0]", "Argument[1].ArrayElement", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithSliceOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"] - - ["github.com/nonexistent/test", "", False, "FunctionWithVarArgsOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["github.com/nonexistent/test", "", False, "VariadicSource", "", "", "Argument[0]", "qltest", "manual"] - - addsTo: - pack: codeql/go-all - extensible: sinkModel - data: - - ["github.com/nonexistent/test", "", False, "VariadicSink", "", "", "Argument[0]", "qltest", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.json new file mode 100644 index 000000000000..3701e3bdb61e --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["commandargs", true, 0] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.yml deleted file mode 100644 index c720e53fd7b8..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/commandargs/test.ext.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["commandargs", true, 0] \ No newline at end of file diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.json new file mode 100644 index 000000000000..0051681ef548 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["database", true, 0] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["test", "", false, "Source", "", "", "ReturnValue", "database", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.yml deleted file mode 100644 index 476c0cf7212f..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/source.ext.yml +++ /dev/null @@ -1,11 +0,0 @@ -extensions: - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["database", true, 0] - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["test", "", False, "Source", "", "", "ReturnValue", "database", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.json new file mode 100644 index 000000000000..0051681ef548 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.json @@ -0,0 +1,22 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["database", true, 0] + ] + }, + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["test", "", false, "Source", "", "", "ReturnValue", "database", "manual"] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.yml deleted file mode 100644 index 8e91b5dfb48f..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/test.ext.yml +++ /dev/null @@ -1,13 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["database", true, 0] - - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["test", "", False, "Source", "", "", "ReturnValue", "database", "manual"] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.json new file mode 100644 index 000000000000..f1fcea166f88 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["environment", true, 0] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.yml deleted file mode 100644 index b7075d8e7ae9..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/environment/test.ext.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["environment", true, 0] \ No newline at end of file diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.json new file mode 100644 index 000000000000..9fd1ecd655ba --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["file", true, 0] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.yml deleted file mode 100644 index 5e21e41103f4..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/file/test.ext.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["file", true, 0] \ No newline at end of file diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.json new file mode 100644 index 000000000000..c7b9f250410a --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["stdin", true, 0] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.yml deleted file mode 100644 index 92156e87f400..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/source.ext.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["stdin", true, 0] diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.json b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.json new file mode 100644 index 000000000000..c7b9f250410a --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/threat-models", + "extensible": "threatModelConfiguration" + }, + "data": [ + ["stdin", true, 0] + ] + } + ] +} diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.yml b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.yml deleted file mode 100644 index 92156e87f400..000000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/stdin/test.ext.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/threat-models - extensible: threatModelConfiguration - data: - - ["stdin", true, 0] diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.json b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.json new file mode 100644 index 000000000000..4897bea17fa1 --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.json @@ -0,0 +1,13 @@ +{ + "extensions": [ + { + "addsTo": { + "pack": "codeql/go-all", + "extensible": "sourceModel" + }, + "data": [ + ["main", "", false, "intSource", "", "", "ReturnValue", "remote", "manual"] + ] + } + ] +} diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.yml b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.yml deleted file mode 100644 index 1fc92a07144b..000000000000 --- a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.ext.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/go-all - extensible: sourceModel - data: - - ["main", "", False, "intSource", "", "", "ReturnValue", "remote", "manual"]