{
  "schema_version": "1.4.0",
  "id": "GHSA-9frf-r7c7-j2vg",
  "modified": "2023-06-13T20:54:15Z",
  "published": "2021-08-25T20:54:14Z",
  "aliases": [
    "CVE-2021-29939"
  ],
  "summary": "Out of bounds write in stackvector",
  "details": "StackVec::extend used the lower and upper bounds from an Iterator's size_hint to determine how many items to push into the stack based vector. If the size_hint implementation returned a lower bound that was larger than the upper bound, StackVec would write out of bounds and overwrite memory on the stack. As mentioned by the size_hint documentation, size_hint is mainly for optimization and incorrect implementations should not lead to memory safety issues.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "crates.io",
        "name": "stackvector"
      },
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "1.0.9"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-29939"
    },
    {
      "type": "WEB",
      "url": "https://github.com/Alexhuszagh/rust-stackvector/issues/2"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/Alexhuszagh/rust-stackvector"
    },
    {
      "type": "WEB",
      "url": "https://rustsec.org/advisories/RUSTSEC-2021-0048.html"
    }
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-787"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2021-08-19T17:15:11Z",
    "nvd_published_at": "2021-04-01T05:15:00Z"
  }
}