Експлойт контракту Rain вивів $1,1 млн у користувачів карток

SOL
ETH
експлойт контрактуКартка стейблкоїнаBlockaidSolanaAviciRainTria
2026-09-03Джерело: crypto.news
Експлойт контракту Rain вивів $1,1 млн у користувачів карток

Зловмисник скористався застарілим контрактом Rain card 28 серпня, вивівши приблизно 1,1 мільйона доларів з кількох програм стабільних монет, що працюють на Solana, згідно з компанією з безпеки блокчейну Blockaid.

Підсумок

  • Застарілий контракт Rain Solana дозволив несанкціоновані зняття коштів з рахунків забезпечення карток у кількох програмах.
  • Blockaid оцінила, що було вкрадено приблизно 1,1 мільйона доларів, а кошти пізніше потрапили в Tornado Cash на Ethereum.
  • Avici повідомила про виведення 500 859 доларів від 1 685 користувачів, тоді як Tria окремо виявила 431 945 доларів, що вплинуло на 636 клієнтів.
  • Rain заявив, що кожна програма, яка використовувала вразливу версію контракту, була оновлена після серпневої атаки.
  • Самокеровані гаманці залишилися недоторканими, оскільки зловмисник націлився на окремі контракти, що зберігали кошти на картках.

Avici і Tria були серед постраждалих криптонеобанків. Дві компанії розкрили сукупні збитки понад 932 800 доларів для 2 321 користувача. Blockaid заявила, що інші програми, підтримувані Rain, також були під загрозою, що доводить оціночні збитки до приблизно 1,1 мільйона доларів.

Зловмисник не отримав доступу до самокерованих гаманців клієнтів або їхніх приватних ключів. Натомість експлойт націлився на контракти забезпечення, що зберігали стабільні монети, які користувачі вносили для поповнення балансів своїх карток.

Rain заявив, що його системи моніторингу виявили вразливість, що впливає на «невелику кількість програм», які використовували застарілу версію його контракту Solana card. Компанія оновила кожну програму, яка все ще працювала на ураженій версії, згідно з її публічною заявою.

Інцидент додає занепокоєння щодо вразливостей контрактів та операційних процесів. Збої в безпеці криптовалют спричинили приблизно 1,1 мільярда доларів збитків протягом першого півріччя 2026 року, згідно з дослідженням, опублікованим Blockaid.

Дефект контракту Rain виявив спільну карткову інфраструктуру

Rain надає інфраструктуру, яка дозволяє криптокомпаніям випускати картки, поповнювані стабільними монетами. Коли клієнти поповнюють свої картки, внесені активи переходять на рахунки забезпечення, які керуються через ончейн-контракти.

Ці баланси відокремлені від активів, що зберігаються в особистих гаманцях клієнтів. Як тільки кошти потрапляють у контракт забезпечення картки, їх безпека залежить від коду постачальника інфраструктури та контролю авторизації.

Blockaid виявила чотири розгортання, що містять код з тим самим хешем опкоду, що й вразливий контракт. Компанія з безпеки заявила, що зловмисник вивів кошти щонайменше з двох розгортань. Інші два, за повідомленнями, мали ту саму вразливість, але підтверджених збитків не було.

Rain підтвердив, що застарілий контракт спричинив інцидент. Однак він не опублікував повного технічного звіту, який би ідентифікував кожне постраждале розгортання або пояснив, чому деякі програми продовжували використовувати старішу версію.

Ситуація нагадує інші інциденти, коли застаріла або багаторазово вразлива інфраструктура залишалася активною. У пов'язаному матеріалі зловмисники двічі за два місяці експлуатували той самий міст Verus, що викликало подібні питання щодо оновлень спільних розгортань.

Інцидент з Rain не означав компрометації самого Solana. Блокчейн продовжував нормально обробляти транзакції, поки зловмисник експлуатував код застосунку, розгорнутий у мережі.

Повторно використаний підпис обійшов контроль за виведенням коштів

Застарілий контракт Rain вимагав двох незалежних авторизацій перед тим, як дозволити певні дії з обліковим записом. Він використовував інструкції перевірки Ed25519 від Solana для підтвердження необхідних підписів.

Згідно з аналізом Blockaid, зловмисник маніпулював другою інструкцією перевірки. Її підпис, відкритий ключ та зміщення повідомлення вказували на інформацію, що містилася в першій інструкції.

Тому вразливий контракт приймав один підпис, контрольований зловмисником, як два незалежні схвалення. Це дозволило зловмиснику задовольнити вимогу авторизації без дозволу власників заставних рахунків.

Після обходу перевірки підпису зловмисник використав інструкцію AddCollateralAdmin, щоб надати собі адміністративні привілеї над окремими рахунками. Потім він викликав WithdrawCollateralAsset для переказу USDC та USDT з цих рахунків.

Blockaid зафіксував 2 945 додавань адміністраторів та 5 288 викликів виведення. Компанія виявила 8 233 основні транзакції експлойту протягом приблизно двох годин 29 хвилин.

Операція відбувалася в автоматизованому темпі. Blockaid повідомив, що перші два успішні виведення відбулися з інтервалом у три секунди, що вказує на те, що зловмисник підготував систему для націлювання на кілька рахунків.

Клієнти не авторизували шкідливі транзакції. Експлойт стався на рівні контракту, тобто захист від фішингу або шкідливих підписів гаманця не запобіг би цим виведенням.

Інша слабкість на рівні застосунку нещодавно викрила інший протокол, коли несправний контроль застави дозволив експлойт DeFi на 75 мільйонів доларів. В обох випадках базові мережі продовжували працювати, тоді як логіка застосунку дозволяла несанкціоновану діяльність.

Зловмисник перемістив кошти через deBridge

Виведені USDC та USDT накопичилися в одному гаманці Solana, ідентифікованому як FVNFzqAny8spWdPmYw6RQ9TkYa29ueFFiqCFD1gQnCEj.

Зловмисник обміняв стейблкоїни на SOL через децентралізовані торгові платформи. Потім Blockaid простежив надходження з Solana на Ethereum через крос-чейн протокол deBridge.

Приблизно 455,9 ETH надійшло в Tornado Cash між 19:20 та 19:49 UTC, за даними Blockaid. Tornado Cash об'єднує депозити та дозволяє виведення на адреси, які публічно не пов'язані з оригінальними гаманцями відправників.

Тому міксер ускладнив подальше відстеження руху коштів через публічні записи блокчейну. Blockaid заявив, що вкрадені кошти не були повернуті після надходження в Tornado Cash.

Використання крос-чейн інфраструктури додало ще один етап до шляху відмивання коштів. Криптомости також стали прямими цілями: експлойт із підробленим переказом вивів 11,5 мільйона доларів з мосту Verus Ethereum раніше у 2026 році.

Blockaid пов'язав дві адреси Ethereum з початковим фінансуванням діяльності зловмисника Rain у Solana. Ні Rain, ні правоохоронні органи публічно не ідентифікували осіб, які контролюють ці адреси.

Заяви компанії про виявлення атаки та відстеження коштів є її власними висновками. Blockaid надає послуги з безпеки та моніторингу криптокомпаніям, включаючи емітентів карток для стейблкоїнів.

Avici та Tria розкривають втрати клієнтів

Avici повідомила, що зловмисник вилучив $500 859,22 з балансів карток, що належали 1 685 користувачам. Компанія заявила, що відшкодувала всім постраждалим клієнтам та надала 10% кешбеку після інциденту.

Tria розкрила приблизно $431 945 збитків для 636 клієнтів. Вона повідомила в офіційному оновленні, що кожному постраждалому клієнту відшкодовуються кошти.

Ці два розкриття становлять $932 804,22 з оціночних збитків. Blockaid також назвав Solayer Pay постраждалою програмою, але незалежно підтвердженої цифри її збитків не було.

Різниця між розкритими збитками Avici та Tria та оцінкою Blockaid у 1,1 мільйона доларів, схоже, стосується інших програм, підтримуваних Rain. Повної розбивки опубліковано не було.

Токен Avici впав на 49% від свого денного максимуму після появи повідомлень про експлойт, згідно з ринковими даними. Токен досяг повідомленого мінімуму в $0,217, перш ніж частково відновитися. Токен Tria також впав більш ніж на 10% в певний момент.

Ці зміни цін відбулися після публічних повідомлень про атаку, хоча ширші ринкові умови також могли вплинути на торгівлю.

Оновлення Rain вплинули на розгортання контрактів

Rain заявив, що всі карткові програми, які використовували застарілий контракт, були оновлені. Компанія повідомила про відсутність додаткової несанкціонованої діяльності після завершення змін.

Також було сказано, що постраждалі користувачі будуть повністю компенсовані. Rain не розкрив, чи буде він відшкодовувати картковим програмам безпосередньо, чи окремі провайдери нестимуть витрати.

Багато питань залишаються без відповіді. Rain не опублікував повну історію версій вразливого контракту, дату впровадження дефекту або причину, чому старі розгортання залишалися активними.

Компанія також не розкрила, чи виявив аудит цю вразливість авторизації до атаки. Про відновлення коштів, внесених у Tornado Cash, публічно не повідомлялося.

Цей інцидент знову порушує питання про те, чи забезпечують періодичні аудити достатній захист після впровадження контрактів у виробництво. Нещодавні галузеві дослідження показали, що інституції все частіше вимагають безперервного моніторингу разом із традиційними аудитами безпеки, особливо для контрактів, що зберігають активи користувачів.

Детальний технічний звіт дозволив би зовнішнім дослідникам підтвердити вразливість і визначити, чи подібний код залишається активним в інших місцях. Карткові провайдери також можуть переглянути, як вони відстежують версії контрактів та обмежують адміністративні дозволи в спільній інфраструктурі.

Користувачі можуть зберігати контроль над своїми особистими гаманцями, але все одно стикаються з ризиками після внесення коштів у карткову програму. Безпека цих балансів залежить від контрактів, що зберігають заставу, провайдера, який їх обслуговує, та операторів, які реагують на появу вразливостей.