Міст XRP втратив 200 000 XRP через помилку в логіці ретранслятора

XRP
логічна помилкаЕксплойтрелейерCoreumмістXRP
2026-08-11Джерело: crypto.news
Міст XRP втратив 200 000 XRP через помилку в логіці ретранслятора

Майже 200 000 XRP було виведено з мосту Coreum XRPL 9 серпня після того, як, схоже, зловмисник скористався недоліком у логіці ретранслятора, а не вразливістю самого реєстру XRP Ledger.

Підсумок

  • Майже 200 000 XRP залишили міст Coreum у 94 підписаних платежах під час 97-хвилинної атаки.
  • Аналіз блокчейну показав, що 17 із 28 підписів ретрансляторів авторизували кожну виплату XRP з мосту.
  • Код ретранслятора обробляв успішні платежі з мемо мосту, не перевіряючи спочатку адресу призначення платежу.
  • Документація XRPL підтверджує, що рідний XRP не має трастових ліній, що безпосередньо суперечить початковому поясненню про ріплінг.
  • Coreum не опублікував офіційний звіт про інцидент до вівторка, поки міст залишався зупиненим.

Опублікований 11 серпня аналіз у блокчейні простежив виведення 199 916,3 XRP з рахунку мосту через 94 платежі протягом 97 хвилин.

Міст утримував близько 200 410 XRP до початку послідовності о 19:16 UTC. До 20:53 UTC його баланс впав до 493,5 XRP. Кожен вихідний платіж XRP мав власну мультипідписну авторизацію мосту, з 17 підписами з 28 ключів ретранслятора. Докази не вказують на те, що ці ключі були викрадені.

Coreum bridge drained of XRP, source: XRPL.to
Coreum bridge drained of XRP, source: XRPL.to

Ретранслятори мосту XRP прийняли власні платежі за депозити

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

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

XRPL.to виявив, що 21 ретранслятор підтвердив першу фантомну транзакцію зловмисника. Як тільки достатньо відповідних доказів досягло контракту Coreum, система зарахувала баланси, які не були підкріплені реальними депозитами. Потім зловмисник використав звичайний процес виведення мосту, спонукаючи його ретрансляторів авторизувати реальні платежі XRP.

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

Дані XRP Ledger суперечать теорії ріплінгу

Початкове попередження звинувачувало «ріплінг» та налаштування DefaultRipple рахунку мосту. Пізніший аналіз транзакцій відкинув це пояснення. Документація XRP Ledger стверджує, що ріплінг застосовується до випущених активів, які зберігаються через трастові лінії. Рідний XRP не використовує ці трастові лінії.

Запис транзакцій надає ще одну відмінність. XRPL.to приписав усі 199 916,3 XRP, виведені з рахунку, платежам, підписаним самим мостом, і не виявив жодного XRP, що виходить через маршрут ріплінгу. Він також виявив, що транзакції не були частковими платежами.

Інцидент, таким чином, наразі не вказує на збій консенсусу XRP Ledger. Це розмежування є актуальним після того, як розробники нещодавно посилили перевірку програмного забезпечення XRPL та запропонованих функцій, як висвітлено в попередньому огляді аудиту програмного забезпечення. Інцидент з Coreum натомість зосереджений на програмному забезпеченні, що з'єднує дві незалежні мережі.

Вкрадені XRP рухаються далі, поки міст залишається зупиненим

Два початкові гаманці-отримувачі переказали майже всі XRP протягом кількох годин. XRPL.to відстежив приблизно 169 000 XRP на два проміжні акаунти, створені 28 червня, а ще приблизно 34 000 XRP переміщено на три інші гаманці. Аналіз не ідентифікував зловмисника.

Після 20:53 UTC 9 серпня жодні додаткові XRP не покинули міст. Його акаунт здійснив одну додаткову транзакцію обгорнутих токенів рано наступного ранку, після чого замовк, а контракт мосту згодом був повідомлений як зупинений. Coreum не опублікував офіційний звіт про інцидент на момент випуску аналізу 11 серпня.

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