#####
# Test of query mode with multiple inputs.
$ govulncheck -mode=query -json stdlib@go1.17 github.com/tidwall/gjson@v1.6.5
{
  "config": {
    "protocol_version": "v0.1.0",
    "scanner_name": "govulncheck",
    "scanner_version": "v0.0.0-00000000000-20000101010101",
    "db": "testdata/vulndb-v1",
    "db_last_modified": "2023-04-03T15:57:51Z"
  }
}
{
  "progress": {
    "message": "Looking up vulnerabilities in stdlib at go1.17..."
  }
}
{
  "progress": {
    "message": "Looking up vulnerabilities in github.com/tidwall/gjson at v1.6.5..."
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2022-0969",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2022-09-12T20:23:06Z",
    "aliases": [
      "CVE-2022-27664",
      "GHSA-69cg-p879-7622"
    ],
    "details": "HTTP/2 server connections can hang forever waiting for a clean shutdown that was preempted by a fatal error. This condition can be exploited by a malicious client to cause a denial of service.",
    "affected": [
      {
        "package": {
          "name": "stdlib",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.18.6"
              },
              {
                "introduced": "1.19.0"
              },
              {
                "fixed": "1.19.1"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "net/http",
              "symbols": [
                "ListenAndServe",
                "ListenAndServeTLS",
                "Serve",
                "ServeTLS",
                "Server.ListenAndServe",
                "Server.ListenAndServeTLS",
                "Server.Serve",
                "Server.ServeTLS",
                "http2Server.ServeConn",
                "http2serverConn.goAway"
              ]
            }
          ]
        }
      },
      {
        "package": {
          "name": "golang.org/x/net",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "0.0.0-20220906165146-f3363e06e74c"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "golang.org/x/net/http2",
              "symbols": [
                "Server.ServeConn",
                "serverConn.goAway"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "WEB",
        "url": "https://groups.google.com/g/golang-announce/c/x49AQzIVX-s"
      },
      {
        "type": "REPORT",
        "url": "https://go.dev/issue/54658"
      },
      {
        "type": "FIX",
        "url": "https://go.dev/cl/428735"
      }
    ],
    "credits": [
      {
        "name": "Bahruz Jabiyev, Tommaso Innocenti, Anthony Gavazzi, Steven Sprecher, and Kaan Onarlioglu"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2022-0969"
    }
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2021-0054",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2021-04-14T20:04:52Z",
    "aliases": [
      "CVE-2020-36067",
      "GHSA-p64j-r5f4-pwwx"
    ],
    "details": "Due to improper bounds checking, maliciously crafted JSON objects can cause an out-of-bounds panic. If parsing user input, this may be used as a denial of service vector.",
    "affected": [
      {
        "package": {
          "name": "github.com/tidwall/gjson",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.6.6"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "github.com/tidwall/gjson",
              "symbols": [
                "Result.ForEach",
                "unwrap"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://github.com/tidwall/gjson/commit/bf4efcb3c18d1825b2988603dea5909140a5302b"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/196"
      }
    ],
    "credits": [
      {
        "name": "@toptotu"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2021-0054"
    }
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2021-0265",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2022-08-15T18:06:07Z",
    "aliases": [
      "CVE-2021-42248",
      "CVE-2021-42836",
      "GHSA-c9gm-7rfj-8w5h",
      "GHSA-ppj4-34rq-v8j9"
    ],
    "details": "A maliciously crafted path can cause Get and other query functions to consume excessive amounts of CPU and time.",
    "affected": [
      {
        "package": {
          "name": "github.com/tidwall/gjson",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "1.9.3"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "github.com/tidwall/gjson",
              "symbols": [
                "Get",
                "GetBytes",
                "GetMany",
                "GetManyBytes",
                "Result.Get",
                "parseObject",
                "queryMatches"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://github.com/tidwall/gjson/commit/77a57fda87dca6d0d7d4627d512a630f89a91c96"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/237"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/236"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/commit/590010fdac311cc8990ef5c97448d4fec8f29944"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2021-0265"
    }
  }
}
