Polygon исправила уязвимости валидаторов в форках Austin и Kyoto

Polygon исправила уязвимости валидаторов в форках Austin и Kyoto

Компания Polygon Labs устранила несколько уязвимостей в своей сети Polygon Proof-of-Stake с помощью двух скоординированных хардфорков, включая уязвимость, которая могла заставить весь набор валидаторов выполнять дорогостоящую обработку одной специально созданной транзакции.

Команда поддержки валидаторов Polygon сообщила об исправлениях в сообщении на форуме от 27 августа, после того как хардфорки Austin и Kyoto уже были протестированы и активированы. Команда заявила, что исправления безопасности, влияющие на консенсус, были развернуты в закрытом режиме, проверены в тестовой сети Amoy и раскрыты только после защиты основной сети.

Уязвимости затронули Bor, клиент исполнения транзакций Polygon PoS, и Heimdall, который отвечает за координацию валидаторов и другие функции консенсуса. Polygon заявила, что не обнаружила доказательств того, что какие-либо из этих уязвимостей были использованы злоумышленниками или вызвали сбои в основной сети.

В результате обновления до версии 2.10.0 в рамках хардфорка Austin, были устранены две уязвимости, связанные с обработкой блоков, приводящие к отказу в обслуживании.

Один из вариантов касался событий синхронизации состояния, используемых для размещения мостовых соединений L1-L2. Такие события могут выполнять код контракта и прекомпиляцию, но их выполнение не ограничивалось эффективным лимитом газа для каждого блока. Austin ввел ограничение на количество газа, которое события синхронизации состояния могут потреблять в пределах блока, предотвращая исчерпание вычислительных ресурсов.

Отдельная уязвимость связана с данными TxDependency, используемыми во время обработки блока. Злоумышленник, создающий блок, мог предоставить поле данных слишком большого размера, что потенциально могло привести к чрезмерному выделению памяти и сбоям в работе узлов, обрабатывающих блок.

Издание Polygon охарактеризовало обе проблемы как векторы отказа в обслуживании, связанные с блочной обработкой, а не с ошибками в обеспечении корректности консенсуса, и заявило, что ни одна из них не вызывала известных сбоев до развертывания исправлений.

В результате обновления до версии 0.11.0 в Kyoto был внесен ряд исправлений, касающихся проверки входных данных и повышения надежности консенсуса.

Среди них Polygon выявил наиболее серьезную уязвимость в пакете транзакций — глубоко вложенные поля google.protobuf.Any. Транзакции Heimdall могут заключать сообщения в поля Any, которые, в свою очередь, могут быть вложены друг в друга.

Без ограничения глубины вложенности злоумышленник мог бы создать транзакцию, содержащую глубоко вложенные поля, с относительно небольшими затратами, заставляя при этом каждый обрабатывающий её валидатор выполнять значительную работу по декодированию. Polygon заявила, что эта уязвимость предоставляет путь без разрешений для навязывания дорогостоящей скоординированной обработки всему набору валидаторов.

В протокол Kyoto добавлено сканирование на уровне байтов, которое отклоняет транзакции, если вложенность превышает определенный порог. Проверка применяется как на этапе приема в мемпул, так и на этапе обработки консенсуса, поэтому одна и та же транзакция не может быть принята одним путем и отклонена другим.

Другие исправления Heimdall касались учета этапов, обработки контрольных точек и воспроизведения событий L1. Неудачное создание будущего интервала теперь может привести к ухудшению результатов и повторной попытке на следующей границе вместо блокировки фиксации этапа, а новые ключи воспроизведения устраняют частный случай, когда различные события L1 могли бы конфликтовать.

Более старые узлы Polygon перестали соответствовать друг другу

Оба варианта хардфорка являются обязательными для операторов, желающих остаться в канонической сети Polygon PoS.

Для всех узлов требуется Bor v2.10.0, а Heimdall v0.11.0 применяется к валидаторам и полным узлам. Polygon сообщила, что операторы, использующие версии, выпущенные до достижения пиков активации, уже отделились от канонического консенсуса и должны обновить свое программное обеспечение, чтобы снова присоединиться к сети.

Изменения были внесены в виде бинарных обновлений, что означает, что операторам не нужно переносить состояние, изменять конфигурацию генезиса или выполнять полную синхронизацию. Узлы, вышедшие из консенсуса, могут обновиться и откатиться к соответствующей высоте, существовавшей до хардфорка, прежде чем синхронизироваться с канонической цепочкой.

Ранее Polygon уже использовала хардфорки для решения проблем, затрагивающих её инфраструктуру PoS. В сентябре 2025 года разработчики осуществили хардфорк после того, как программная ошибка привела к задержкам в завершении транзакций до 15 минут.

Ранее произошедший инцидент повлиял на синхронизацию валидаторов и локальную быструю финализацию, в то время как производство блоков и контрольные точки Ethereum продолжались. Были развернуты обновления Bor и Heimdall для восстановления обработки этапов, синхронизации состояния и финализации консенсуса.

Месяц спустя в основной сети Rio была внедрена безсостоятельная проверка на основе свидетелей и модель производителя блоков, выбираемого валидатором, поскольку Polygon продолжала менять способы обработки и проверки транзакций в своей сети PoS.

Читайте также: