Affected versions of this crate allowed unsoundly extending
lifetimes using arr!
macro. This may result in a variety of
memory corruption scenarios, most likely use-after-free.
solana-sdk 0.11.0
This project might be open to known security vulnerabilities, which can be prevented by tightening the version range of affected dependencies. Find detailed information at the bottom.
solana-sdk
(12 total, 6 outdated, 3 possibly insecure)
Crate | Required | Latest | Status |
---|---|---|---|
bincode | ^1.0.0 | 2.0.1 | out of date |
bs58 | ^0.2.0 | 0.5.1 | out of date |
byteorder | ^1.2.1 | 1.5.0 | up to date |
chrono ⚠️ | ^0.4.0 | 0.4.41 | maybe insecure |
generic-array ⚠️ | ^0.12.0 | 1.2.0 | out of date |
log | ^0.4.2 | 0.4.27 | up to date |
ring ⚠️ | ^0.13.2 | 0.17.14 | out of date |
serde | ^1.0.82 | 1.0.219 | up to date |
serde_derive | ^1.0.82 | 1.0.219 | up to date |
serde_json | ^1.0.10 | 1.0.140 | up to date |
sha2 | ^0.8.0 | 0.10.9 | out of date |
untrusted | ^0.6.2 | 0.9.0 | out of date |
generic-array
: arr! macro erases lifetimesAffected versions of this crate allowed unsoundly extending
lifetimes using arr!
macro. This may result in a variety of
memory corruption scenarios, most likely use-after-free.
chrono
: Potential segfault in `localtime_r` invocationsUnix-like operating systems may segfault due to dereferencing a dangling pointer in specific circumstances. This requires an environment variable to be set in a different thread than the affected functions. This may occur without the user's knowledge, notably in a third-party library.
No workarounds are known.
ring
: Some AES functions may panic when overflow checking is enabled.ring::aead::quic::HeaderProtectionKey::new_mask()
may panic when overflow
checking is enabled. In the QUIC protocol, an attacker can induce this panic by
sending a specially-crafted packet. Even unintentionally it is likely to occur
in 1 out of every 2**32 packets sent and/or received.
On 64-bit targets operations using ring::aead::{AES_128_GCM, AES_256_GCM}
may
panic when overflow checking is enabled, when encrypting/decrypting approximately
68,719,476,700 bytes (about 64 gigabytes) of data in a single chunk. Protocols
like TLS and SSH are not affected by this because those protocols break large
amounts of data into small chunks. Similarly, most applications will not
attempt to encrypt/decrypt 64GB of data in one chunk.
Overflow checking is not enabled in release mode by default, but
RUSTFLAGS="-C overflow-checks"
or overflow-checks = true
in the Cargo.toml
profile can override this. Overflow checking is usually enabled by default in
debug mode.