Jarvis Network зазнав атаки повторного входу через Термінові позики, втратила 663,101 MATIC

robot
Генерація анотацій у процесі

Аналіз атаки повторного входу за допомогою термінових позик на проект Jarvis Network

15 січня 2023 року проект Jarvis_Network зазнав атаки, втративши 663,101 MATIC. Ця атака в основному використовувала Термінові позики та вразливість повторного входу, що призвело до втрати коштів проекту.

Аналіз події атаки повторного входу на термінові позики Jarvis Network

Аналізуючи стек викликів транзакцій, було виявлено, що зловмисник здійснив повторний вхід у функцію remove_liquidity. Ця функція відповідає за видалення ліквідності та повернення токенів користувачеві. Оскільки Polygon має схожу структуру з EVM-ланцюгами, під час переказу MATIC було ініційовано повторний вхід у контракт.

Аналіз події атаки повторного входу на термінові позики Jarvis Network

Атака повторного входу відбувається на етапі запиту ціни. Атакуючий переносить MATIC до свого контракту під час видалення ліквідності. У процесі зворотного виклику атакуючий спочатку запитує ціну певного токена. Через те, що оновлення змінної self.D у контракті відстає від операції переказу, це призводить до помилки в отриманні початкової ціни.

! Аналіз інцидентів атаки повторного входу флеш-позики Jarvis Network

Процес виконання функції remove_liquidity виглядає наступним чином:

  1. Знищити LP токени користувача
  2. Надіслати користувачу кошти для стекингу
  3. Оновити змінну self.D

Аналіз інциденту з повторними атаками термінових позик Jarvis Network

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

Аналіз події атаки повторного входу в Термінові позики Jarvis Network

Хоча функція remove_liquidity використовує декоратор @nonreentrant('lock'), щоб запобігти повторним входам, зловмисники обійшли це обмеження через міжконтрактні позики.

! Аналіз інцидентів атаки повторного входу в флеш-позику Jarvis Network

Цей напад виявив наявність небезпеки в коді проєкту. Щоб уникнути подібних проблем, рекомендується стороні проєкту вжити наступних заходів:

  1. Провести суворий аудит безпеки
  2. Помістіть операцію зміни змінної перед зовнішнім викликом
  3. Використання кількох джерел даних для отримання цін
  4. Дотримуйтесь кодувальної норми "Перевірки-Ефекти-Взаємодії" (Checks-Effects-Interactions)

Аналіз подій атаки повторного входу на термінові позики Jarvis Network

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

Аналіз події повторного атаки на Термінові позики Jarvis Network

Аналіз інциденту повторного атаки на термінові позики Jarvis Network

Аналіз події повторної атаки на термінові позики Jarvis Network

! Аналіз інцидентів атаки повторного входу флеш-позики Jarvis Network

Аналіз події повторної атаки на термінові позики Jarvis Network

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 9
  • Поділіться
Прокоментувати
0/400
MEV_Whisperervip
· 07-22 15:42
Цю каструлю можна тільки розробити.
Переглянути оригіналвідповісти на0
AirdropCollectorvip
· 07-22 15:27
Одразу не хочеться купувати.
Переглянути оригіналвідповісти на0
GateUser-e87b21eevip
· 07-20 04:01
вечірка проєкту防护不给力啊
Переглянути оригіналвідповісти на0
StakeOrRegretvip
· 07-19 19:17
Ще один проект був обкрадений...
Переглянути оригіналвідповісти на0
ZenMinervip
· 07-19 19:09
Що робить цей охоронець?
Переглянути оригіналвідповісти на0
LayerZeroEnjoyervip
· 07-19 19:09
Ай, знову реентрація, старий трюк.
Переглянути оригіналвідповісти на0
LiquidityOraclevip
· 07-19 19:05
Хто сказав, що писати код несерйозно?
Переглянути оригіналвідповісти на0
DecentralizedEldervip
· 07-19 19:01
Знову обікрали, справді, не маю пам'яті.
Переглянути оригіналвідповісти на0
WhaleWatchervip
· 07-19 18:54
Ще один напівфабрикатний проект зазнав удару.
Переглянути оригіналвідповісти на0
Дізнатися більше
  • Закріпити