This project contains known security vulnerabilities. Find detailed information at the bottom.

Crate sp-core

Dependencies

(37 total, 24 outdated, 2 insecure)

CrateRequiredLatestStatus
 base58^0.1.00.2.0out of date
 blake2-rfc^0.2.180.2.18up to date
 byteorder^1.3.21.5.0up to date
 parity-scale-codec^2.0.03.7.5out of date
 dyn-clonable^0.9.00.9.2up to date
 ed25519-dalek ⚠️^1.0.13.0.0insecure
 futures^0.3.10.3.34up to date
 hash-db^0.15.20.16.0out of date
 hash256-std-hasher^0.15.20.15.2up to date
 hex^0.40.4.3up to date
 impl-serde^0.3.00.5.0out of date
 lazy_static^1.4.01.5.0up to date
 libsecp256k1 ⚠️^0.3.20.7.2insecure
 log^0.4.110.4.34up to date
 merlin^2.03.0.0out of date
 num-traits^0.2.80.2.19up to date
 parity-util-mem^0.9.00.12.0out of date
 parking_lot^0.11.10.12.5out of date
 primitive-types^0.9.00.14.0out of date
 rand^0.7.30.10.3out of date
 regex^1.4.21.13.1up to date
 schnorrkel^0.9.10.11.5out of date
 secrecy^0.7.00.10.3out of date
 serde^1.0.1011.0.229up to date
 sha2^0.9.20.11.0out of date
 sp-debug-derive^3.0.015.0.0out of date
 sp-externalities^0.9.00.34.0out of date
 sp-runtime-interface^3.0.037.0.0out of date
 sp-std^3.0.014.0.0out of date
 sp-storage^3.0.025.0.0out of date
 substrate-bip39^0.4.20.6.1out of date
 thiserror^1.0.212.0.21out of date
 tiny-bip39^0.82.0.0out of date
 tiny-keccak^2.0.12.0.2up to date
 twox-hash^1.5.02.1.4out of date
 wasmi^0.6.22.0.0out of date
 zeroize^1.2.01.9.0up to date

Security Vulnerabilities

libsecp256k1: libsecp256k1 allows overflowing signatures

RUSTSEC-2021-0076

libsecp256k1 accepts signatures whose R or S parameter is larger than the secp256k1 curve order, which differs from other implementations. This could lead to invalid signatures being verified.

The error is resolved in 0.5.0 by adding a check_overflow flag.

ed25519-dalek: Double Public Key Signing Function Oracle Attack on `ed25519-dalek`

RUSTSEC-2022-0093

Versions of ed25519-dalek prior to v2.0 model private and public keys as separate types which can be assembled into a Keypair, and also provide APIs for serializing and deserializing 64-byte private/public keypairs.

Such APIs and serializations are inherently unsafe as the public key is one of the inputs used in the deterministic computation of the S part of the signature, but not in the R value. An adversary could somehow use the signing function as an oracle that allows arbitrary public keys as input can obtain two signatures for the same message sharing the same R and only differ on the S part.

Unfortunately, when this happens, one can easily extract the private key.

Revised public APIs in v2.0 of ed25519-dalek do NOT allow a decoupled private/public keypair as signing input, except as part of specially labeled "hazmat" APIs which are clearly labeled as being dangerous if misused.