Search

Find a vulnerability

Search criteria

    Related vulnerabilities

    RUSTSEC-2026-0428 (GHSA-XCC6-F2JQ-43X6)

    Vulnerability from osv_rustsec – Published: 2026-10-30 12:00 – Updated: 2026-10-30 11:12 – Source website
    VLAI
    Summary
    BLAKE2b produces wrong tag when using `reset()` with a different-length key
    Details

    Summary

    hazardous::mac::blake2b::Blake2b::reset() does not correctly reset the state when a key is supplied that has a different length than the one used upon initialization with hazardous::mac::blake2b::Blake2b::new(), because it errorneously uses a cached length.

    Impact

    Initialization hazardous::mac::blake2b::Blake2b with a key of some length N, followed by a reset with a key of length != N will produce an incorrect BLAKE2b tag, causing hazardous::mac::blake2b::Blake2b::verify() to fail. This means under honest protocol conditions, parties could experience failing tag verifications.

    Resolution

    Upgrade to v0.17.16 or v0.18.1.


    {
      "affected": [
        {
          "database_specific": {
            "categories": [
              "crypto-failure"
            ],
            "cvss": null,
            "informational": null
          },
          "ecosystem_specific": {
            "affected_functions": null,
            "affects": {
              "arch": [],
              "functions": [
                "orion::hazardous::mac::blake2b::Blake2b::reset"
              ],
              "os": []
            }
          },
          "package": {
            "ecosystem": "crates.io",
            "name": "orion",
            "purl": "pkg:cargo/orion"
          },
          "ranges": [
            {
              "events": [
                {
                  "introduced": "0.0.0-0"
                },
                {
                  "fixed": "0.17.16"
                },
                {
                  "introduced": "0.18.0-0"
                },
                {
                  "fixed": "0.18.1"
                }
              ],
              "type": "SEMVER"
            }
          ],
          "versions": []
        }
      ],
      "aliases": [
        "GHSA-xcc6-f2jq-43x6"
      ],
      "database_specific": {
        "license": "CC0-1.0"
      },
      "details": "## Summary\n\n`hazardous::mac::blake2b::Blake2b::reset()` does not correctly reset the state when a key is supplied that has a different length than the one used upon initialization with `hazardous::mac::blake2b::Blake2b::new()`, because it errorneously uses a cached length. \n\n## Impact\n\nInitialization `hazardous::mac::blake2b::Blake2b` with a key of some length `N`, followed by a reset with a key of length `!= N` will produce an incorrect BLAKE2b tag, causing `hazardous::mac::blake2b::Blake2b::verify()` to fail. This means under honest protocol conditions, parties could experience failing tag verifications.\n\n## Resolution\n\nUpgrade to `v0.17.16` or `v0.18.1`.",
      "id": "RUSTSEC-2026-0428",
      "modified": "2026-10-30T11:12:39Z",
      "published": "2026-10-30T12:00:00Z",
      "references": [
        {
          "type": "PACKAGE",
          "url": "https://crates.io/crates/orion"
        },
        {
          "type": "ADVISORY",
          "url": "https://rustsec.org/advisories/RUSTSEC-2026-0428.html"
        },
        {
          "type": "WEB",
          "url": "https://github.com/orion-rs/orion/pull/690"
        }
      ],
      "related": [],
      "severity": [],
      "summary": "BLAKE2b produces wrong tag when using `reset()` with a different-length key"
    }