{
  "schema_version": "1.4.0",
  "id": "GHSA-wwq9-3cpr-mm53",
  "modified": "2024-12-04T18:29:15Z",
  "published": "2024-12-04T18:29:15Z",
  "aliases": [],
  "summary": "Borsh serialization of HashMap is non-canonical",
  "details": "The borsh serialization of the HashMap did not follow the borsh specification. It potentially produced non-canonical encodings dependent on insertion order. It also did not perform canonicty checks on decoding.\n\nThis can result in consensus splits and cause equivalent objects to be considered distinct.\n\nThis was patched in 0.15.1.",
  "severity": [
    {
      "type": "CVSS_V4",
      "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "crates.io",
        "name": "hashbrown"
      },
      "ranges": [
        {
          "type": "ECOSYSTEM",
          "events": [
            {
              "introduced": "0.15.0"
            },
            {
              "fixed": "0.15.1"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/rust-lang/hashbrown/issues/576"
    },
    {
      "type": "WEB",
      "url": "https://github.com/kayabaNerve/hashbrown-borsh-poc"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/rust-lang/hashbrown"
    },
    {
      "type": "WEB",
      "url": "https://rustsec.org/advisories/RUSTSEC-2024-0402.html"
    }
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-502"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2024-12-04T18:29:15Z",
    "nvd_published_at": null
  }
}