Copyright 2024 The Go Authors. All rights reserved.
Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file.

Expected output of TestCVEToReport/CVE-2022-39213.

-- CVE-2022-39213 --
id: GO-ID-PENDING
modules:
    - module: github.com/pandatix/go-cvss
      vulnerable_at: 0.6.2
      packages:
        - package: go-cvss
summary: CVE-2022-39213 in github.com/pandatix/go-cvss
description: |-
    go-cvss is a Go module to manipulate Common Vulnerability Scoring System (CVSS).
    In affected versions when a full CVSS v2.0 vector string is parsed using
    `ParseVector`, an Out-of-Bounds Read is possible due to a lack of tests. The Go
    module will then panic. The problem is patched in tag `v0.4.0`, by the commit
    `d9d478ff0c13b8b09ace030db9262f3c2fe031f4`. Users are advised to upgrade. Users
    unable to upgrade may avoid this issue by parsing only CVSS v2.0 vector strings
    that do not have all attributes defined (e.g.
    `AV:N/AC:L/Au:N/C:P/I:P/A:C/E:U/RL:OF/RC:C/CDP:MH/TD:H/CR:M/IR:M/AR:M`). As
    stated in
    [SECURITY.md](https://github.com/pandatix/go-cvss/blob/master/SECURITY.md), the
    CPE v2.3 to refer to this Go module is
    `cpe:2.3:a:pandatix:go_cvss:*:*:*:*:*:*:*:*`. The entry has already been
    requested to the NVD CPE dictionary.
cves:
    - CVE-2022-39213
references:
    - advisory: https://github.com/pandatix/go-cvss/security/advisories/GHSA-xhmf-mmv2-4hhx
    - fix: https://github.com/pandatix/go-cvss/commit/d9d478ff0c13b8b09ace030db9262f3c2fe031f4
    - web: https://github.com/pandatix/go-cvss/blob/master/SECURITY.md
source:
    id: CVE-2022-39213
