Back to Blog

Уязвимость публичного перевода в смарт-контракте Tether Gold

Code Auditing
May 27, 2023
2 min read

5 апреля наш внутренний инструмент анализа обнаружил ошибку в контракте Tether Gold, которая позволяет злоумышленнику перевести токены XAUt (Tether Gold) любого пользователя на заранее определенный адрес. Команда получила наш отчет и сообщила, что обнаружила эту проблему самостоятельно. Сегодня мы узнали, что уязвимость была исправлена, и хотим поделиться подробностями. Кроме того, мы покажем, как использовать Phalcon Fork для разработки и отладки PoC (доказательства концепции) этой уязвимости.

0x0. Уязвимость

В функции transferFrom контракта любой желающий может вызвать эту функцию для перевода токенов других пользователей на доверенный адрес, указанный владельцем токена. Хотя эту уязвимость нельзя напрямую использовать для перевода токенов на счет злоумышленника, он все равно может передать токены из пула, чтобы манипулировать ценой токена (например, в пуле WETH-XAUt) и получить прибыль.

Исправление этой уязвимости довольно простое, как показано ниже.

0x1. Как использовать уязвимость

Для написания и отладки PoC мы можем использовать Phalcon Fork. Сначала мы создаем форк до того, как уязвимость будет исправлена. При создании форка через Fork API я использовал блок под номером 17038763.

Шаг I: подготовка достаточного количества Ether

Первый шаг — получить достаточное количество Ether для оплаты газа (gas fee) атакующему. Если на счете нет Ether, будет выполнена транзакция по переводу Ether с адреса vitalik.eth.

Шаг II: передача прав владения контрактом Tether Gold

Владельцем контракта Tether Gold является мультиподписной кошелек (0xC6CDE7C39eB2f0F0095F41570af89eFC2C1Ea828). Чтобы передать права владения атакующему, нам нужно отправить транзакцию с мультиподписью, а затем подтвердить её.

Шаг III: Добавление привилегированного аккаунта в контракт Tether Gold

Мы добавили новый аккаунт 0x189e7947a9d9210eec3a41dcf5f536bb1d7726f5 в качестве привилегированного. Затем мы вызываем функцию transferFrom, чтобы перевести токен XAUt от жертвы на этот привилегированный аккаунт.

0x2. PoC

Вы можете найти PoC на GitHub:

Sign up for the latest updates
Мост Harmony Cross-Shard ONE Mint + потеря ключей на ~$47М | BlockSec
Security Insights

Мост Harmony Cross-Shard ONE Mint + потеря ключей на ~$47М | BlockSec

10-16 авг 2026: 5 инцидентов, ~$47М убытков. Анализ — уязвимость Harmony: replay чеков между шардами создал 3.01Т ONE (не учтено в убытках). $47М — кражи ключей (Whale ~$25М, Kite ~$14М, Coinsbuy ~$7.9М) и ошибка Fox (~$117K).

~$1.6M потеряно: эксплойты токена Moke и LpdFi | BlockSec Weekly
Security Insights

~$1.6M потеряно: эксплойты токена Moke и LpdFi | BlockSec Weekly

За неделю 3-9 августа 2026 года в BNB Chain произошло 2 инцидента с общими потерями ~$1,6 млн из-за манипуляций с ценами. LpdFi (~$697K): атакующий использовал резервы PancakeSwap для завышения позиции. Moke Token (~$906K): манипуляция ценой и дублирование дивидендов LP.

Инцидент с COLDCARD: когда «случайная» сид-фраза кошелька оказалась не случайной
Security Insights

Инцидент с COLDCARD: когда «случайная» сид-фраза кошелька оказалась не случайной

Ошибка в прошивке COLDCARD направляла генерацию seed на слабый программный ГСЧ, делая кошельки восстановимыми офлайн. Обновление не устраняет проблему. К 7 августа 2026 г. подтверждённые потери — 1 405 BTC (~$91 млн), оценки до 2 055 BTC.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
Уязвимость публичного перевода в смарт-контракте Tether Gold