Succinct представила серьезную уязвимость SP1, основная сеть может принимать недействительные доказательства
Система нулевых знаний Succinct SP1 обнаружила уязвимость с высокой степенью серьезности. Эта уязвимость была раскрыта в объявлении GitHub GHSA-p7v2-jjv3-8p8f и затрагивает версии 6.0 до 6.8.0 нативного Rust-валидатора SP1, что может привести к тому, что основная сеть Prover Network примет недействительные доказательства: злоумышленники могут представить недействительные доказательства выполнения, которые все равно будут приняты валидатором сети.
Причина уязвимости заключается в том, что валидатор считывает только метки данных (размерность декларации) и не проверяет, равняется ли фактическое количество хранимых элементов произведению размерности, что позволяет злоумышленнику подделать метку, чтобы недействительное доказательство прошло. Проверки Groth16 и Plonk с фиксированной формой wrap не затронуты, проверки на Solidity в цепочке также безопасны. Succinct выпустил исправленную версию 6.8.1 24 сентября и уже развернул ее в основной сети; в этой версии добавлена проверка длины десериализации.
Уязвимость была обнаружена Виталисом Салисом и сообщена через программу вознаграждений за уязвимости Immunefi. Пользователям, которые самостоятельно запускают нативный Rust-валидатор и принимают недостоверных доказателей, необходимо обновиться до версии 6.8.1.






