Смарт-контракт «будильника» Ethereum позволил хакерам воспользоваться ошибкой возврата газа. Компания Peckshield, занимающаяся безопасностью и аналитикой блокчейна, впервые сообщила об уязвимости в среду.
Будильник Ethereum — это протокол, который позволяет пользователям планировать будущие транзакции Ethereum. Логика планирования транзакций, которую он использует, происходит в смарт-контрактах.
В рамках эксплойта злоумышленник сначала вызывает функцию cancel() в контракте Ethereum Alarm Clock с аномально высокой комиссией за транзакцию. Эксплойт происходит на следующем этапе, когда сумма возмещения комиссии за транзакцию рассчитывается слишком высоко, и выплачивается более высокая сумма, чем предполагалось.
Конечный результат дает эксплойтеру гораздо более высокий возврат ETH из-за более высокой комиссии за транзакцию, которую они установили. При нормальных обстоятельствах пользователь, вызывающий контракт, получит обратно лишь немногим больше, чем его комиссия за транзакцию.