nimiq/core-rs-albatross — это реализация протокола Nimiq Proof-of-Stake на Rust, основанная на алгоритме консенсуса Albatross. До версии 1.2.2 злонамеренный или скомпрометированный валидатор, выбранный в качестве предлагающего, мог опубликовать предложение блока макроса, в котором `header.body_root` не соответствует фактическому хешу тела макроса. Предложение может пройти проверку предложения, поскольку путь проверки предложения макроса проверяет заголовок, но не проверяет привязку `body_root == hash(body)`; более поздний код ожидает эту привязку и может запаниковать из-за несоответствия, что приведет к сбою валидаторов.
Обратите внимание, что это влияние касается только узлов валидатора. Патч для этой уязвимости официально выпущен как часть версии 1.2.2. Патч добавляет соответствующую проверку корня тела в проверки предложений.
Никаких известных обходных путей не существует.
Показать оригинальное описание (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.2.2, a malicious or compromised validator that is elected as proposer can publish a macro block proposal where `header.body_root` does not match the actual macro body hash. The proposal can pass proposal verification because the macro proposal verification path validates the header but does not validate the binding `body_root == hash(body)`; later code expects this binding and may panic on mismatch, crashing validators. Note that the impact is only for validator nodes. The patch for this vulnerability is formally released as part of v1.2.2. The patch adds the corresponding body root verification in the proposal checks. No known workarounds are available.
Характеристики атаки
Последствия
Строка CVSS v3.1