RUSTSEC-2020-0068

Unexpected panic in multihash from_slice parsing code

Issued
Package
multihash (crates.io)
Type
Vulnerability
Categories
  • denial-of-service
Aliases
Details
https://github.com/multiformats/rust-multihash/pull/72
Patched
  • >=0.11.3
Keywords
  • parsing
  • panic
  • untrusted data
Affected Functions
Version
multihash::digests::MultihashGeneric::from_bytes
  • <0.11.3
multihash::digests::MultihashRefGeneric::from_slice
  • <0.11.3

Description

In versions prior 0.11.3 it's possible to make from_slice panic by feeding it certain malformed input. It's never documented that from_slice (and from_bytes which wraps it) can panic, and its' return type (Result<Self, DecodeError>) suggests otherwise.

In practice, from_slice/from_bytes is frequently used in networking code (for example in rust-libp2p) and is being called with unsanitized data from untrusted sources. This can allow attackers to cause DoS by causing an unexpected panic in the network client's code.

More