Ошибка в механике sell-burn позволила вывести 381 WBNB из пула MT/WBNB
12.03.2026 | CoinKyt Company

10 марта 2026 года в сети BNB Smart Chain был атакован пул ликвидности MT/WBNB. Злоумышленник воспользовался логической уязвимостью в механике sell-burn токена MT и вывел 381.7468 WBNB в рамках одной транзакции.


Атака была реализована через flash-loan и завершена до возврата заёмных средств. Уязвимость не требовала взлома инфраструктуры — достаточно было корректно воспроизвести последовательность вызовов контракта.

 

Ход инцидента


Атака проведена в одной транзакции:


0xfb57c980286ea8755a7b69de5a74483c44b1f74af4ab34b7c52e733fc62dfca6


1️⃣ Злоумышленник взял крупный flash-loan в WBNB.


2️⃣ Внутри транзакции из пула MT/WBNB было принудительно сожжено 6,735,516.903064984155452968 MT.


3️⃣ После сжигания пул отдал атакующему 1,198.628257314866098653 WBNB — как компенсацию за
изменение резервов.


4️⃣ Flash-loan был возвращён.


5️⃣ На адресе атакующего осталось 381.746819805990283197 WBNB.


Адрес атакующего: 0xDB0901A3254f47c0CE57fFFCE2C730Bc33A1c0e1

 

Почему это стало возможным


Корень уязвимости — в логике контракта MT при продаже токенов.


Во время операции sell контракт MT не только проводил продажу в пул, но и одновременно записывал проданный объём в pendingBurnAmount. То есть токены физически попадали в пул, но при этом сразу помечались как будущий burn.


Далее функция extractFromPoolForLpMining() вызывала _executePendingBurn(). Эта функция напрямую уменьшала баланс пары: отправляла MT на dead-адрес и вызывала sync(). В результате резерв MT в пуле уменьшался принудительно, тогда как резерв WBNB оставался неизменным.


Пул оказывался в перекошенном состоянии: MT в нём резко меньше, WBNB — прежний объём. После этого атакующий продавал MT в уже искажённый пул и получал из него избыточный WBNB.


Фактически механизм burn, призванный регулировать эмиссию, стал инструментом манипуляции резервами пула.

 

Детали расследования: движение средств


После получения украденных активов на адрес 0xDB0901A3254f47c0CE57fFFCE2C730Bc33A1c0e1 злоумышленник начал вывод средств.


Все активы были обменяны на USDC и переведены в сеть Ethereum через мост Stargate. На адресе в сети Ethereum USDC были конвертированы в DAI. Далее средства были направлены в протокол приватности Railgun.

Использование Railgun на завершающем этапе существенно усложняет дальнейшее отслеживание активов.

 

Заключение


Инцидент с пулом MT/WBNB — наглядный пример того, как логическая ошибка в смарт-контракте может стать инструментом полноценной атаки. Уязвимость не требовала эксплуатации внешних систем: злоумышленник воспользовался самим механизмом burn, предусмотренным протоколом.


Принудительное изменение резервов пула без соответствующей коррекции — классическая ошибка в математике AMM-протоколов. Подобные уязвимости, как правило, выявляются на этапе аудита, однако остаются незамеченными при поверхностной проверке.


Команда КоинКит продолжает мониторинг адресов, связанных с инцидентом.