Description
nimiq/core-rs-albatross is a Rust implementation of the Nimiq Proof-of-Stake protocol based on the Albatross consensus algorithm. Prior to version 1.3.0, two peer-facing consensus request handlers assume that the history index is always available and call blockchain.history_store.history_index().unwrap() directly. That assumption is false by construction. HistoryStoreProxy::history_index() explicitly returns None for the valid HistoryStoreProxy::WithoutIndex state. when a full node is syncing or otherwise running without the history index, a remote peer can send RequestTransactionsProof or RequestTransactionReceiptsByAddress and trigger an Option::unwrap() panic on the request path. This issue has been patched in version 1.3.0.
Problem types
CWE-252: Unchecked Return Value
Product status
References
github.com/...atross/security/advisories/GHSA-xr78-2jhh-9wf9
github.com/nimiq/core-rs-albatross/pull/3667
github.com/...ommit/0e5c90a6c75b722f3d6091769776a4040e694dba
github.com/nimiq/core-rs-albatross/releases/tag/v1.3.0