nimiq/core-rs-albatross — это реализация протокола Nimiq Proof-of-Stake на Rust, основанная на алгоритме консенсуса Albatross. До версии 1.3.0 ненадежный узел мог привести к сбою валидатора, опубликовав подписанное сообщение с предложением тендерминта, где подписывающий == validators.num_validators(). ProposalSender::send использует > вместо >= для проверки границ подписывающего лица, поэтому случай равенства проходит и достигает validators.get_validator_by_slot_band(signer), который паникует с индексом выхода за пределы перед выполнением какой-либо проверки подписи. Эта проблема исправлена в версии 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, an untrusted peer could crash a validator by publishing a signed tendermint proposal message where signer == validators.num_validators(). ProposalSender::send uses > instead of >= for the signer bounds check, so the equality case passes and reaches validators.get_validator_by_slot_band(signer), which panics with an out-of-bounds index before any signature verification runs. This issue has been fixed in version 1.3.0.
Характеристики атаки
Последствия
Строка CVSS v3.1