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
~$5.98M Потеряно: Aztec, Raydium и другие | Еженедельник BlockSec
Security Insights

~$5.98M Потеряно: Aztec, Raydium и другие | Еженедельник BlockSec

Еженедельный отчёт о безопасности блокчейна (8–15 июня 2026 г.): 4 инцидента в Ethereum и Solana, общие потери ~$5,98 млн. Aztec Connect: отсутствие валидации входных данных привело к рассинхронизации rollup и L1. Raydium: уязвимость в AMM v3 позволила дренировать 4 пула.

Анализ уязвимости Zcash Orchard | Еженедельник BlockSec
Security Insights

Анализ уязвимости Zcash Orchard | Еженедельник BlockSec

Критическая уязвимость в цепи Orchard Zcash: отсутствие ограничения равенства в гаджете ECC halo2 позволяло незаметно подделывать ZEC через двойное расходование. Уязвимость существовала 4+ лет, обнаружена ИИ-аудитом (Anthropic Opus 4.8, исследователь Тейлор Хорнби), устранена экстренным обновлением NU6.2.

Информационный бюллетень — май 2026 г.
Security Insights

Информационный бюллетень — май 2026 г.

В мае 2026 года в DeFi произошло 3 взлома: Echo Protocol ($76,7 млн, компрометация ключа), StablR ($12,8 млн, брешь в multisig) и Verus-Ethereum Bridge ($11,7 млн, ошибка проверки типов). Общий ущерб — около $101,2 млн.

Best Security Auditor for Web3

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

BlockSec Audit