Содержание
997 пользователей потеряли $23 тыс. через GaslessReservoirEnabler

Содержание
23.09.2026 CoinKyt Company
3 мин
21 сентября 2026 года злоумышленник воспользовался ошибкой авторизации в контракте GaslessReservoirEnabler в сети Polygon и похитил около $23 тыс. Он использовал ранее выданные пользователями разрешения на трату токенов, но контракт не проверял, что команда перевода действительно исходит от владельца средств. Были затронуты около 997 адресов.
Расследование «КоинКит» анализирует, как именно сработала атака и куда ушли средства.
Введение
GaslessReservoirEnabler — это смарт-контракт в сети Polygon, который позволяет пользователям выполнять операции с токенами без оплаты комиссии за газ (плату за обработку транзакции). Обычно другой сервис оплачивает газ, а пользователь подписывает разрешение на операцию.
Разрешение (allowance) — это команда токена, которая позволяет определённому адресу списывать средства с кошелька владельца в рамках установленного лимита. Например, пользователь может разрешить бирже или сервису списывать его токены для обмена.
Polygon — это сеть второго уровня для Ethereum, которая делает транзакции быстрее и дешевле.
Ход инцидента
-
Злоумышленник обратился к контракту GaslessReservoirEnabler. Этот контракт позволял выполнять операции с токенами от имени пользователей, которые ранее выдали разрешения.
-
В функции, которая обрабатывает переводы и выполнение команд, контракт проверял только одно: разрешён ли используемый токен или модуль в системе. Но он не проверял, от чьего имени поступает команда перевода.
-
Злоумышленник сформировал вызов, который заставил разрешённый токен выполнить перевод с чужого адреса. Контракт не убедился, что владелец средств действительно разрешил конкретную эту операцию.
-
Если пользователь ранее выдал GaslessReservoirEnabler достаточное разрешение на трату своих токенов, токен воспринимал сам контракт как разрешённого исполнителя и выполнял перевод.
-
Таким образом злоумышленник мог списывать токены с чужих кошельков, используя старые разрешения, выданные для совершенно других целей.
-
Были затронуты около 997 адресов. Общий ущерб составил примерно $23 тыс.
Почему это стало возможным
Проблема заключалась в отсутствии проверки связи между командой и владельцем средств. Контракт проверял, что токен разрешён в системе, но не проверял, что конкретная команда
transferFrom действительно относится к тому пользователю, который дал разрешение.Разрешение (allowance) выдаётся на определённый адрес и на определённую сумму. Но в данном случае контракт использовал это разрешение для выполнения произвольных команд от имени любого владельца, не убедившись, что владелец согласен на конкретную операцию.
Это позволило злоумышленнику использовать ранее выданные разрешения для несанкционированных переводов.
Детали расследования: движение средств
После кражи средства были консолидированы и через Across Protocol — сервис для перевода криптовалюты между сетями — переведены из Polygon в Ethereum на адрес:
0x5936aEDb22363E522a717682C0fe94C05c19C07d
До получения этих средств адрес был профинансирован 1 ETH из Tornado Cash — миксера, который скрывает источник криптовалюты.
После поступления нескольких переводов через Across почти все собранные средства были отправлены обратно в Tornado Cash.
Заключение
Инцидент с GaslessReservoirEnabler показал, что проверка только разрешённости токена или модуля недостаточна. Контракт должен также проверять, что конкретная команда перевода исходит от владельца средств и соответствует его намерениям. Использование ранее выданных разрешений для несанкционированных операций привело к массовой краже с сотен кошельков.


