#####
# Test binary scanning at the package level with json output
$ govulncheck -format json -mode binary -scan package ${common_vuln_binary}
{
  "config": {
    "protocol_version": "v1.0.0",
    "scanner_name": "govulncheck",
    "scanner_version": "v0.0.0-00000000000-20000101010101",
    "db": "testdata/vulndb-v1",
    "db_last_modified": "2023-04-03T15:57:51Z",
    "scan_level": "package",
    "scan_mode": "binary"
  }
}
{
  "progress": {
    "message": "Scanning your binary for known vulnerabilities..."
  }
}
{
  "progress": {
    "message": "Fetching vulnerabilities from the database..."
  }
}
{
  "progress": {
    "message": "Checking the binary against the vulnerabilities..."
  }
}
{
  "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"
    }
  }
}
{
  "finding": {
    "osv": "GO-2021-0265",
    "fixed_version": "v1.9.3",
    "trace": [
      {
        "module": "github.com/tidwall/gjson",
        "version": "v1.6.5"
      }
    ]
  }
}
{
  "finding": {
    "osv": "GO-2021-0265",
    "fixed_version": "v1.9.3",
    "trace": [
      {
        "module": "github.com/tidwall/gjson",
        "version": "v1.6.5",
        "package": "github.com/tidwall/gjson"
      }
    ]
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2021-0113",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2021-10-06T17:51:21Z",
    "aliases": [
      "CVE-2021-38561",
      "GHSA-ppp9-7jff-5vj2"
    ],
    "details": "Due to improper index calculation, an incorrectly formatted language tag can cause Parse to panic via an out of bounds read. If Parse is used to process untrusted user inputs, this may be used as a vector for a denial of service attack.",
    "affected": [
      {
        "package": {
          "name": "golang.org/x/text",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "0.3.7"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "golang.org/x/text/language",
              "symbols": [
                "MatchStrings",
                "MustParse",
                "Parse",
                "ParseAcceptLanguage"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://go.dev/cl/340830"
      },
      {
        "type": "FIX",
        "url": "https://go.googlesource.com/text/+/383b2e75a7a4198c42f8f87833eefb772868a56f"
      }
    ],
    "credits": [
      {
        "name": "Guido Vranken"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2021-0113"
    }
  }
}
{
  "finding": {
    "osv": "GO-2021-0113",
    "fixed_version": "v0.3.7",
    "trace": [
      {
        "module": "golang.org/x/text",
        "version": "v0.3.0"
      }
    ]
  }
}
{
  "finding": {
    "osv": "GO-2021-0113",
    "fixed_version": "v0.3.7",
    "trace": [
      {
        "module": "golang.org/x/text",
        "version": "v0.3.0",
        "package": "golang.org/x/text/language"
      }
    ]
  }
}
{
  "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"
    }
  }
}
{
  "finding": {
    "osv": "GO-2021-0054",
    "fixed_version": "v1.6.6",
    "trace": [
      {
        "module": "github.com/tidwall/gjson",
        "version": "v1.6.5"
      }
    ]
  }
}
{
  "finding": {
    "osv": "GO-2021-0054",
    "fixed_version": "v1.6.6",
    "trace": [
      {
        "module": "github.com/tidwall/gjson",
        "version": "v1.6.5",
        "package": "github.com/tidwall/gjson"
      }
    ]
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2020-0015",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2021-04-14T20:04:52Z",
    "aliases": [
      "CVE-2020-14040",
      "GHSA-5rcv-m4m3-hfh7"
    ],
    "summary": "Infinite loop when decoding some inputs in golang.org/x/text",
    "details": "An attacker could provide a single byte to a UTF16 decoder instantiated with UseBOM or ExpectBOM to trigger an infinite loop if the String function on the Decoder is called, or the Decoder is passed to transform.String. If used to parse user supplied input, this may be used as a denial of service vector.",
    "affected": [
      {
        "package": {
          "name": "golang.org/x/text",
          "ecosystem": "Go"
        },
        "ranges": [
          {
            "type": "SEMVER",
            "events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "0.3.3"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "golang.org/x/text/encoding/unicode",
              "symbols": [
                "bomOverride.Transform",
                "utf16Decoder.Transform"
              ]
            },
            {
              "path": "golang.org/x/text/transform",
              "symbols": [
                "String"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://go.dev/cl/238238"
      },
      {
        "type": "FIX",
        "url": "https://go.googlesource.com/text/+/23ae387dee1f90d29a23c0e87ee0b46038fbed0e"
      },
      {
        "type": "REPORT",
        "url": "https://go.dev/issue/39491"
      },
      {
        "type": "WEB",
        "url": "https://groups.google.com/g/golang-announce/c/bXVeAmGOqz0"
      }
    ],
    "credits": [
      {
        "name": "@abacabadabacaba and Anton Gyllenberg"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2020-0015"
    }
  }
}
{
  "finding": {
    "osv": "GO-2020-0015",
    "fixed_version": "v0.3.3",
    "trace": [
      {
        "module": "golang.org/x/text",
        "version": "v0.3.0"
      }
    ]
  }
}
{
  "osv": {
    "schema_version": "1.3.1",
    "id": "GO-2021-0059",
    "modified": "2023-04-03T15:57:51Z",
    "published": "2021-04-14T20:04:52Z",
    "aliases": [
      "CVE-2020-35380",
      "GHSA-w942-gw6m-p62c"
    ],
    "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.4"
              }
            ]
          }
        ],
        "ecosystem_specific": {
          "imports": [
            {
              "path": "github.com/tidwall/gjson",
              "symbols": [
                "Get",
                "GetBytes",
                "GetMany",
                "GetManyBytes",
                "Result.Array",
                "Result.Get",
                "Result.Map",
                "Result.Value",
                "squash"
              ]
            }
          ]
        }
      }
    ],
    "references": [
      {
        "type": "FIX",
        "url": "https://github.com/tidwall/gjson/commit/f0ee9ebde4b619767ae4ac03e8e42addb530f6bc"
      },
      {
        "type": "WEB",
        "url": "https://github.com/tidwall/gjson/issues/192"
      }
    ],
    "credits": [
      {
        "name": "@toptotu"
      }
    ],
    "database_specific": {
      "url": "https://pkg.go.dev/vuln/GO-2021-0059"
    }
  }
}
