Новый баг batchOverflow в нескольких смарт-контрактах ERC20

Новая batchOverflow в нескольких смарт-контрактах ERC20.

22/22/2018, 03:28:52 система для сканирования и анализа переносов токенов на основе Ethereum (ERC-20), разработанная компанией PeckShield, подняла тревогу, связанную с необычной транзакцией токенов BEC.

В этой конкретной сделке кто-то перечислил очень большое количество токена BEC — 0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000 (63 0 — Фактически осуществлялось две такие большие передачи токенов, причем каждая передача включает в себя столько же токенов из одного и того же контракта BeautyChain, но на два разных адреса).

Эта аномалия побудила заглянуть в соответствующий код смарт-контракта. Исследование показывает, что такая передача происходит от атаки «in-the-wild», которая использует ранее неизвестную уязвимость в контракте. Мы называем эту особую уязвимость batchOverflow. Такжеотмечаем, что batchOverflow по существу представляет собой проблему с переполнением целочисленного типа. Ниже мы рассмотрим более подробно уязвимость batchOverflow.

Уязвимая функция находится в batchTransfer, и код показан на рисунке. Как указано в строке 257, локальная переменная суммы вычисляется как произведение cnt и _value. Второй параметр, т. е. _value, может быть произвольным 256-битным целым числом, например 0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000 (63 0 ‘). Имея два _receivers, переданных в batchTransfer (), с этим чрезвычайно большим значением, мы можем переполнить сумму и сделать ее равной нулю. При обнулении суммы злоумышленник может затем пройти проверки на работоспособность в строках 258-259 и сделать вычитание в строке 261 неактуальным.

При этом система для сканирования и анализа была использована и в других контрактов. Результаты показывают, что более десятка контрактов ERC20 также уязвимы для batchOverflow. Чтобы это продемонстрировать, был успешно выполнен один уязвимый контракт (который не торгуется ни при каких обменах), как эксплойт доказательной концепции.

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

С другой стороны, очень вероятно, что злоумышленник обладает огромным количеством токенов, используя эти уязвимые контракты. Что если она перейдет на обмен криптовалюты и начнет торговать этими токенами для ETH, BTC или даже USD? При очень большом количестве токенов во владении (вероятно, больше, чем общее их количество в обращении), атака может легко манипулировать ценой связанных криптовалют.

admin2

View Comments

  • Результаты показывают, что более десятка контрактов ERC20 также уязвимы для batchOverflow. Чтобы это продемонстрировать, был успешно выполнен один уязвимый контракт (который не торгуется ни при каких обменах), как эксплойт доказательной концепции.

Share
Published by
admin2

Recent Posts

Почему лучше всего инвестировать в квартиры с двумя спальнями?

В сфере инвестиций в недвижимость выбор типа недвижимости может существенно повлиять на доходность и долгосрочную…

2 месяца ago

Майнинг в деревнях — Учебное пособие

1 000 000 человек уже занимаются ГОРЯЧИМ майнингом, и мы рады сообщить, что открываем новый…

2 месяца ago

Mine HOT: майнинг криптовалюты

NEAR Wallet — это мини-приложение в Telegram для хранения NEAR, USDT и добычи HOT. Майнинг…

2 месяца ago

Почему аренда коммерческой недвижимости в Энгельсе — ваша лучшая инвестиция

Аренда коммерческой недвижимости — это ключевой элемент успешного бизнеса в любом городе, включая Энгельс. Это не просто…

3 месяца ago

Покупка готового бизнеса в Костроме

В наше время все больше предпринимателей обращают внимание на перспективы покупки готового бизнеса, особенно в…

4 месяца ago

Notcoin, как играть

Новый 2024 год в криптосообществе начался с ажиотажа по поводу новой игры и потенциально будущей…

4 месяца ago