nimiq/core-rs-albatross — это реализация протокола Nimiq Proof-of-Stake на Rust, основанная на алгоритме консенсуса Albatross. До версии 1.3.0 два одноранговых обработчика запросов на достижение консенсуса предполагают, что индекс истории всегда доступен, и напрямую вызывают блокчейн.history_store.history_index().unwrap(). Это предположение ложно по своей сути. HistoryStoreProxy::history_index() явно возвращает None для допустимого состояния HistoryStoreProxy::WithoutIndex. когда полный узел синхронизируется или иным образом работает без индекса истории, удаленный узел может отправить RequestTransactionsProof или RequestTransactionReceiptsByAddress и вызвать панику Option::unwrap() на пути запроса.
Эта проблема исправлена в версии 1.3.0.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v3.1