Аналіз інциденту атаки на мережу Cellframe за допомогою Термінові позики
1 червня 2023 року о 10:07:55 (UTC+8) мережа Cellframe зазнала хакерської атаки на смарт-ланцюзі через проблему з підрахунком кількості токенів під час процесу міграції ліквідності. Ця атака принесла хакерам приблизно 76,112 доларів.
Кореневі причини атаки
Проблеми з обчисленнями під час процесу міграції ліквідності є основною причиною цієї атаки.
Детальний опис процесу атаки
Атакуючий спочатку отримує 1000 BNB та 500000 токенів New Cell через Термінові позики. Потім вони обмінюють всі токени New Cell на BNB, що призводить до зменшення кількості BNB у пулі до нуля. Нарешті, атакуючий обмінює 900 BNB на токени Old Cell.
Варто зазначити, що зловмисник перед початком атаки спочатку додав ліквідність Old Cell та BNB, отримавши Old lp.
Далі зловмисник викликає функцію міграції ліквідності. У цей момент у новому пулі практично немає BNB, а в старому пулі практично немає токенів Old Cell. Процес міграції включає: видалення старої ліквідності та повернення відповідної кількості токенів користувачеві; потім додавання нової ліквідності відповідно до пропорцій нового пулу. Оскільки в старому пулі практично немає токенів Old Cell, кількість BNB, отриманих під час видалення ліквідності, зростає, а кількість токенів Old Cell зменшується. Це призводить до того, що користувачеві потрібно додати лише невелику кількість BNB і токенів New Cell, щоб отримати ліквідність, а надлишкові BNB та токени Old Cell повертаються користувачеві.
Нарешті, зловмисник видаляє ліквідність нового пулу та обмінює токени Old Cell, які були повернуті після міграції, на BNB. У цей момент у старому пулі є велика кількість токенів Old Cell, але майже немає BNB, зловмисник знову обмінює токени Old Cell на BNB, завершуючи отримання прибутку. Після цього зловмисник повторює операцію міграції.
Рекомендації з безпеки
Під час міграції ліквідності слід повністю враховувати зміни в кількості двох токенів у новому та старому пулі, а також поточну ціну токенів. Пряме використання кількостей двох токенів у торговій парі для розрахунків легко піддається маніпуляціям.
Перед запуском коду обов'язково проведіть всебічний і суворий аудит безпеки, щоб запобігти виникненню подібних вразливостей.
Ця подія ще раз підкреслює, що при виконанні складних операцій DeFi, особливо тих, що стосуються чутливих операцій, таких як міграція ліквідності, необхідно бути особливо обережними та враховувати всі аспекти безпеки.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Cellframe Network зазнав флеш-атаки, збитки склали 76 тисяч доларів США.
Аналіз інциденту атаки на мережу Cellframe за допомогою Термінові позики
1 червня 2023 року о 10:07:55 (UTC+8) мережа Cellframe зазнала хакерської атаки на смарт-ланцюзі через проблему з підрахунком кількості токенів під час процесу міграції ліквідності. Ця атака принесла хакерам приблизно 76,112 доларів.
Кореневі причини атаки
Проблеми з обчисленнями під час процесу міграції ліквідності є основною причиною цієї атаки.
Детальний опис процесу атаки
Атакуючий спочатку отримує 1000 BNB та 500000 токенів New Cell через Термінові позики. Потім вони обмінюють всі токени New Cell на BNB, що призводить до зменшення кількості BNB у пулі до нуля. Нарешті, атакуючий обмінює 900 BNB на токени Old Cell.
Варто зазначити, що зловмисник перед початком атаки спочатку додав ліквідність Old Cell та BNB, отримавши Old lp.
Далі зловмисник викликає функцію міграції ліквідності. У цей момент у новому пулі практично немає BNB, а в старому пулі практично немає токенів Old Cell. Процес міграції включає: видалення старої ліквідності та повернення відповідної кількості токенів користувачеві; потім додавання нової ліквідності відповідно до пропорцій нового пулу. Оскільки в старому пулі практично немає токенів Old Cell, кількість BNB, отриманих під час видалення ліквідності, зростає, а кількість токенів Old Cell зменшується. Це призводить до того, що користувачеві потрібно додати лише невелику кількість BNB і токенів New Cell, щоб отримати ліквідність, а надлишкові BNB та токени Old Cell повертаються користувачеві.
Нарешті, зловмисник видаляє ліквідність нового пулу та обмінює токени Old Cell, які були повернуті після міграції, на BNB. У цей момент у старому пулі є велика кількість токенів Old Cell, але майже немає BNB, зловмисник знову обмінює токени Old Cell на BNB, завершуючи отримання прибутку. Після цього зловмисник повторює операцію міграції.
Рекомендації з безпеки
Під час міграції ліквідності слід повністю враховувати зміни в кількості двох токенів у новому та старому пулі, а також поточну ціну токенів. Пряме використання кількостей двох токенів у торговій парі для розрахунків легко піддається маніпуляціям.
Перед запуском коду обов'язково проведіть всебічний і суворий аудит безпеки, щоб запобігти виникненню подібних вразливостей.
Ця подія ще раз підкреслює, що при виконанні складних операцій DeFi, особливо тих, що стосуються чутливих операцій, таких як міграція ліквідності, необхідно бути особливо обережними та враховувати всі аспекти безпеки.