{"id":"CVE-2019-16143","aliases":["EUVD-2021-1566","GHSA-4x25-pvhw-5224","RUSTSEC-2019-0019"],"status":"published","title":"Algorithms compute incorrect results in blake2","description":"An issue was discovered in the blake2 crate before 0.8.1 for Rust. The BLAKE2b and BLAKE2s algorithms, when used with HMAC, produce incorrect results because the block sizes are half of the required sizes.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.00933,"percentile":0.60962,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-327"],"published":"2019-08-25T12:00:00Z","modified":"2026-06-17T02:21:45Z","fixes":[{"ecosystem":"crates.io","package":"blake2","fixed_in":["0.8.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"blake2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.8.1"}]}]},{"source":"osv","ecosystem":"crates.io","package":"blake2","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.8.1"}]}]},{"source":"osv","ecosystem":"crates.io","package":"blake2","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.8.1"}]}]}],"products":[{"vendor":"blake2","product":"blake2-rust"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2019-0019.html","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","web","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-16143","tags":["advisory"]},{"url":"https://github.com/RustCrypto/MACs/issues/19","tags":["web","report"]},{"url":"https://github.com/advisories/GHSA-4x25-pvhw-5224"},{"url":"https://github.com/RustCrypto/hashes/tree/master/blake2","tags":["package"]},{"url":"https://crates.io/crates/blake2","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2019-16143","description":"An issue was discovered in the blake2 crate before 0.8.1 for Rust. The BLAKE2b and BLAKE2s algorithms, when used with HMAC, produce incorrect results because the block sizes are half of the required sizes.","status":"published","published":"2019-09-09T11:58:51Z","modified":"2024-08-05T01:10:41.237Z","updated_at":"2026-11-02T14:32:23.189113Z"}],"euvd":[{"id":"EUVD-2021-1566","description":"An issue was discovered in the blake2 crate before 0.8.1 for Rust. The BLAKE2b and BLAKE2s algorithms, when used with HMAC, produce incorrect results because the block sizes are half of the required sizes.","status":"published","published":"2019-09-09T11:58:51Z","modified":"2024-08-05T01:10:41Z","updated_at":"2026-11-03T02:40:33.179924Z"}],"ghsa":[{"id":"GHSA-4x25-pvhw-5224","title":"Algorithms compute incorrect results in blake2","description":"An issue was discovered in the blake2 crate before 0.8.1 for Rust. The BLAKE2b and BLAKE2s algorithms, when used with HMAC, produce incorrect results because the block sizes are half of the required sizes.","status":"published","published":"2021-08-25T20:44:20Z","modified":"2023-06-22T05:03:05Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T14:36:55.184601Z"}],"nvd":[{"id":"CVE-2019-16143","description":"An issue was discovered in the blake2 crate before 0.8.1 for Rust. The BLAKE2b and BLAKE2s algorithms, when used with HMAC, produce incorrect results because the block sizes are half of the required sizes.","status":"published","published":"2019-09-09T12:15:11.023Z","modified":"2026-06-17T02:21:45.31Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T14:05:25.691233Z"}],"osv":[{"id":"GHSA-4x25-pvhw-5224","title":"Algorithms compute incorrect results in blake2","description":"An issue was discovered in the blake2 crate before 0.8.1 for Rust. The BLAKE2b and BLAKE2s algorithms, when used with HMAC, produce incorrect results because the block sizes are half of the required sizes.","status":"published","published":"2021-08-25T20:44:20Z","modified":"2023-11-08T04:01:16.407154Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-327"],"updated_at":"2026-11-02T15:46:37.528068Z"},{"id":"RUSTSEC-2019-0019","title":"HMAC-BLAKE2 algorithms compute incorrect results","description":"When used in conjunction with the Hash-based Message Authentication Code (HMAC),\nthe BLAKE2b and BLAKE2s implementations in `blake2` crate versions prior to\nv0.8.1 used an incorrect block size (32-bytes instead of 64-bytes for BLAKE2s,\nand 64-bytes instead of 128-bytes for BLAKE2b), causing them to miscompute the\n`MacResult`.\n\nThe v0.8.1 release of the `blake2` crate uses the correct block sizes.\n\nNote that this advisory only impacts usage of BLAKE2 with HMAC, and does not\nimpact `Digest` functionality.","status":"published","published":"2019-08-25T12:00:00Z","modified":"2023-11-08T04:01:16.407154Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:53:39.492624Z"}]}}
