Всё началось с бага в функции `joinswapPoolAmountOut`, обсчитывающей депозит в один токен. Атакующий (`0x338c...a41`) взял крупные флеш-займы сразу на четырёх протоколах — Spark, Aave, Morpho и Uniswap V3 — и вывел почти все резервы WBTC из уязвимого пула (`0x2257...c57`). При околонулевом балансе 18-знаковая математика с фиксированной точкой округлила размер депозита вниз, фактически до одного сатоши, но выдала полное количество запрошенных BPT. Итог — 4 408,8 BPT за сатоши и $234 000 из пула.

Это не первый визит того же класса бага: в ноябре 2025-го похожая ошибка округления в V2 стоила протоколу около $116 млн, и именно после неё Balancer Labs 24 марта 2026 объявила о сворачивании деятельности — протокол ведёт облегчённая DAO-структура. Так что «команда занята V3» — неточная формулировка: чинить V1 просто некому. Код иммутабелен, паузы и патча нет, 31 августа Balancer призвал поставщиков ликвидности выйти самостоятельно через legacy-интерфейс `legacy.balancer.fi` — домен официальный, баннер со ссылкой добавлен в их собственный фронтенд. SlowMist назвал три отсутствующие защиты: минимальный эффективный ввод, минимальный баланс пула и проверка относительной ошибки; существующий MIN_BALANCE срабатывал только при `bind`/`rebind`.

Опаснее масштаб распространения. BPool — одни из самых тиражируемых контрактов в DeFi, и логика join/exit разошлась по многочисленным форкам без правки уязвимых мест; протоколы, работающие с токенами меньше 18 знаков (WBTC, USDC) и не закрывшие `joinswapPoolAmountOut`, сидят на той же бомбе. Оговорка к расхожему сравнению: клоны BPool у Ocean Protocol в Polygon 25 июня 2026 сломали не этим багом, а асимметрией `joinswapExternAmountIn` / `exitswapPoolAmountIn` в связке с авто-со-стейкингом — унаследованный код тот же, уязвимость другая, убыток около $11,9 тыс.