
17 и 26 июля 2026 года два протокола межсетевых обменов — Across и Garden Finance — столкнулись с атаками принципиально одной природы. В обоих случаях смарт-контракты работали корректно. Уязвимость находилась в программах вне блокчейна — тех, которые анализировали события и принимали решения о выплатах. Суммарный ущерб — около $3,17 млн.
Across Protocol: поддельное сообщение прошло как настоящий депозит — $2,8 млн
Дата: 17 июля 2026 | Сети: Solana → Ethereum | Ущерб: ~$2,8 млн
Что произошло
Across Protocol — межсетевой мост, позволяющий быстро переводить активы между блокчейнами. Ключевую роль в его работе играют релееры — это специализированные операторы, которые выступают посредниками: сначала они выплачивают получателю средства из собственного резерва в целевой сети, а уже потом получают компенсацию из депозита пользователя в исходной сети. Это делает переводы быстрыми: получатель не ждёт подтверждений из другой сети — деньги выдаёт релеер здесь и сейчас.
Чтобы решить, когда и кому выплачивать средства, релеер Risk Labs использовал специальную программу вне блокчейна — она постоянно мониторила события в сети Solana и при обнаружении депозита запускала выплату в Ethereum.
Злоумышленник нашёл способ создавать события, которые выглядели как настоящие депозиты — без реального внесения средств.
1️⃣ Поддельные сообщения вместо депозитов. Атакующий создал специальную программу-обёртку, которая вызывала вспомогательную функцию Across get_unsafe_deposit_id и добавляла к вызову данные, имитирующие настоящее событие депозита. Реальных токенов в протокол при этом не поступало — состояние смарт-контрактов не менялось ни на байт.
2️⃣ Программа релеера приняла подделку за реальность. Мониторинговая программа Risk Labs проверяла два условия: что сообщение связано с программой Across SpokePool и что используется правильный служебный адрес event_authority. Оба условия выполнялись. Но не проверялась специальная восьмибайтовая метка — event discriminator. Это своеобразный штамп, который отличает настоящее событие протокола от обычного вызова функции с похожими данными. Без этой проверки подделка и оригинал были неотличимы.
3️⃣ Выплата реальных средств. Программа «увидела» депозит и запустила выплату: релеер Risk Labs отправил злоумышленнику реальные ETH из собственных резервов в Ethereum. Цикл повторялся до тех пор, пока не были выплачены около $2,8 млн.
Почему стало возможным
Уязвимость была целиком в программе вне блокчейна — в логике мониторинга событий Solana. Смарт-контракты Across работали корректно. Проблема в том, что Solana и Ethereum устроены по-разному: в EVM-сетях (Ethereum и подобных) события записываются в специальные стандартизированные журналы. В Solana внешние программы часто определяют события, анализируя инструкции и данные транзакций самостоятельно. Это требует более строгих проверок на стороне обработчика — одной из которых, проверки event discriminator, и не хватало.
Движение средств
На адрес злоумышленника 0xA6fb971F3B7a9b9F76EdA76bc89268fe26560189 поступило ~1 431 ETH, на адрес 0xa0C0e9f307b5A26cA3FB5891c19154fc7A02BeF7 — ~521 ETH. Затем с первого адреса ~1 310 ETH были переведены на второй, а ~121 ETH возвращены обратно в Across Protocol. С консолидированного адреса 1 500 ETH были направлены на адрес 0x50324E91622710A77bb440C7461593CE942f7039, ещё 331 ETH также возвращены в Across.
На момент расследования ~1 500 ETH остаются на адресе 0x50324E91622710A77bb440C7461593CE942f7039 без движения. Примечательно: суммарно злоумышленник вернул в Across около 452 ETH — возможно, как часть переговоров или ошибочно.
Garden Finance: взломанная база данных солвера — $370 тыс. выдано за несуществующие свопы
Дата: 26 июля 2026 | Сети: Ethereum, Base, Arbitrum, BNB Smart Chain | Ущерб: ~$370 тыс.
Что произошло
Garden Finance — протокол для кросс-чейн обменов активами через независимых операторов, которые называются солверами. Солвер — это посредник, который берёт на себя техническую сторону обмена: блокирует свои активы в одной сети и получает активы пользователя в другой. Для надёжности используются HTLC-контракты — это специальные «условные сейфы»: средства в них заблокированы до выполнения определённых условий (например, подтверждения со второй стороны) или освобождаются обратно по истечении срока.
Злоумышленник атаковал не смарт-контракт и не блокчейн — а базу данных конкретного независимого солвера.
1️⃣ Компрометация базы данных. Атакующий получил доступ к офчейн-базе данных солвера — внешней системе хранения информации о состоянии свопов, которая находится вне блокчейна. В эту базу были добавлены поддельные записи о якобы существующих и полностью профинансированных обменах.
2️⃣ Система приняла подделку за реальность. Исполнительная система солвера проверяла состояние свопов по этой базе данных — и увидела «подтверждённые» операции, по которым встречная сторона якобы уже внесла активы. Система не проверила эти данные напрямую в блокчейне и запустила выплаты.
3️⃣ Вывод средств. Из HTLC-контрактов солвера были освобождены активы на сумму около $370 тыс. в USDC, BTCB, ETH, iBTC, cbBTC и WBTC — без каких-либо реальных встречных вложений со стороны злоумышленника.
Почему стало возможным
Уязвимым компонентом оказалась инфраструктура независимого солвера — конкретно его база данных. Система принимала данные из неё как доверенный источник правды, не перепроверяя их актуальность напрямую в блокчейне. Когда база была скомпрометирована и в неё внесены поддельные записи, система не имела механизма обнаружить подмену.
Это демонстрирует риск гибридных систем: когда смарт-контракты взаимодействуют с офчейн-инфраструктурой, безопасность всей системы определяется наименее защищённым звеном. В данном случае — базой данных солвера.
Движение средств
После получения смешанных активов на адрес 0x25b224C05f6cC5e132165C1621dE1A4C3B316999 все токены были обменяны на ETH через MetaMask, Bridgers, Relay и Uniswap. Средства переведены на адрес 0x7f242a6DE68A2aFf97F0FFaB3e4870B83E68277B и затем направлены в миксер Tornado Cash.
Заключение
Два инцидента, разделённые девятью днями, объединяет один принцип: в обоих случаях смарт-контракты не были взломаны. Уязвимость находилась в системах вне блокчейна — программе мониторинга в Across и базе данных солвера в Garden Finance.
Это отражает растущую сложность DeFi-инфраструктуры: протоколы всё чаще зависят от офчейн-компонентов для принятия решений, и именно эти компоненты становятся мишенью. Блокчейн сам по себе защищён хорошо — но системы вокруг него требуют не меньшего внимания.
~1 500 ETH из Across остаются на известном адресе без движения. Средства Garden Finance выведены через Tornado Cash. Команда «КоинКит» продолжает отслеживать движение активов по обоим инцидентам.


