Klever-Go — это реализация протокола блокчейна Klever на Go. До версии 1.7.20 при проверке подписи заголовка неиспользуемые биты заполнения PubKeysBitmap учитывались в двух третях кворума валидатора. Эти биты заполнения не соответствуют ни одному валидатору и игнорируются фактической проверкой совокупной подписи BLS, поэтому злонамеренный или скомпрометированный производитель блоков может настроить их для достижения необходимого кворума, собирая при этом меньше подлинных подписей валидатора, чем требует протокол.
В результате узлы, которые импортируют или перехватывают заголовок, принимают его как правильно подписанный без реального кворума в две трети, что ослабляет консенсусную безопасность и подрывает окончательность. Эта проблема исправлена в версии 1.7.20.
Показать оригинальное описание (EN)
Klever-Go is the Go implementation of the Klever blockchain protocol. Prior to 1.7.20, header signature verification counts the unused padding bits of the PubKeysBitmap toward the two-thirds validator quorum. These padding bits do not correspond to any validator and are ignored by the actual BLS aggregate-signature check, so a malicious or compromised block producer can set them to reach the required quorum while gathering fewer genuine validator signatures than the protocol demands. As a result, nodes that import or intercept the header accept it as correctly signed without a real two-thirds quorum, weakening consensus safety and undermining finality. This issue is fixed in version 1.7.20.
Характеристики атаки
Последствия
Строка CVSS v4.0