19 мая 2026 года в сети Signum произошел один из самых серьезных инцидентов безопасности. В специально созданном блоке 1 541 011 злоумышленник использовал уязвимость переполнения целочисленного значения в расчете вознаграждения за блок на узле Signum. Поскольку созданный блок соответствовал правилам консенсуса Proof-of-Commitment на уязвимых узлах, он был первоначально принят частью сети.
После майнинга блока участник сообщества ANGiS заметил абсурдный баланс счета и обнаружил, что средства начали поступать на биржи. Он немедленно сообщил об этом разработчикам frank_the_tank и ohager.
Уязвимость возникла в контексте хардфорка SMART_FEES, который добавил возврат комиссий и учёт сжигания в расчёты вознаграждения за блок в Signum.
Установив totalFeeCashBackNqt на очень большое отрицательное значение, злоумышленник вызвал переполнение в расчёте вознаграждения, в результате чего получилось большое положительное значение. Это завышенное вознаграждение затем было зачислено непосредственно на счёт майнера. Приблизительно 140 миллиардов SIGNA были зачислены на счет злоумышленника одним блоком — сумма, значительно превышающая законное количество SIGNA в обращении.
Проблема затронула версии узлов Signum >= 3.9.0 и < 3.9.8.
После подтверждения аномалии были установлены контакты с биржами, и торговля была приостановлена до завершения расследования.
Также было выпущено обновление. В версии v3.9.7 вредоносный аккаунт был временно заблокирован с помощью настраиваемого свойства node.accBlocking, что предотвратило дальнейшую эксплуатацию уязвимости. В версии v3.9.8 была заменена уязвимая арифметика комиссий за транзакции и введено явное отклонение недействительных отрицательных полей комиссий.
Операторы пулов быстро скоординировали свои действия и откатили цепочку до блокировки 1 541 010.
21 мая был выпущен очередной релиз v3.9.9, поскольку во время полной синхронизации узлов с генезиса некоторые из них столкнулись с ошибкой недетерминированного разрешения форков, появившейся после патча v3.9.8.
К вечеру 21 мая сеть стабилизировалась и восстановила консенсус.
После отката, который был полностью прозрачным, баланс мошенника был обнулен.
К 23 мая биржи получили необходимые данные CVE и подтверждение установки патча, после чего торговля SIGNA возобновилась. Балансы пользователей не пострадали.
Особая благодарность:
- ANGiS за первоначальное обнаружение и немедленную эскалацию.
- frank_the_tank за координацию операций бирж, взаимодействие с операторами пулов и организацию отката.
- ohager за анализ первопричин, разработку патчей и быстрый выпуск версий v3.9.7, v3.9.8 и v3.9.9.
- pir8Radio из Nam Pool и Shadow из OG Ro-Pool за их критически важный вклад в стабилизацию цепочки.
- Balazs за анализ инцидента и постоянное совершенствование системы безопасности.
- Всем операторам пулов, операторам узлов, биржам и членам сообщества, которые оперативно отреагировали в условиях стресса.
Полный текст можно найти здесь.