nimiq/core-rs-albatross — это реализация протокола Nimiq Proof-of-Stake на Rust, основанная на алгоритме консенсуса Albatross. В версиях 1.2.2 и ниже неаутентифицированный одноранговый узел p2p может вызвать панику задачи обработчика сообщений RequestMacroChain. Отправка сообщения RequestMacroChain, в котором первый хэш локатора в основной цепочке жертвы является хешем микроблока (а не хешем макроблока), вызывает указанную панику.
Обработчик RequestMacroChain::handle выбирает локатор только на основе того, что он находится в основной цепочке, затем вызывает get_macro_blocks() и паникует через .unwrap(), когда выбранный хеш не является макроблоком (BlockchainError::BlockIsNotMacro). Эта проблема исправлена в версии 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. In versions 1.2.2 and below, an unauthenticated p2p peer can cause the RequestMacroChain message handler task to panic. Sending a RequestMacroChain message where the first locator hash on the victim’s main chain is a micro block hash (not a macro block hash) causes said panic. The RequestMacroChain::handle handler selects the locator based only on "is on main chain", then calls get_macro_blocks() and panics via .unwrap() when the selected hash is not a macro block (BlockchainError::BlockIsNotMacro). This issue has been fixed in version 1.3.0.
Характеристики атаки
Последствия
Строка CVSS v3.1