Back to Blog

テザーゴールドスマートコントラクトの公開送金脆弱性

Code Auditing
2023年5月27日
3 min read

当社の内部分析ツールは、4月5日にTether Goldコントラクトにバグを発見しました。このバグにより、攻撃者は誰かのXAUt(Tether Gold)トークンを事前に定義されたアドレスに転送できます。チームは当社のレポートを受け取り、内部でこの問題を発見したと述べていました。本日、問題が修正されたことを確認し、詳細を共有したいと思います。また、Phalcon Forkを使用してこの脆弱性のPoCを開発およびデバッグする方法を説明します。

0x0. 脆弱性

コントラクトのtransferFrom関数において、誰でもこの関数を呼び出して、他のユーザーのトークンをトークンオーナーが定義した信頼できるレシートに転送できます。この脆弱性を直接悪用して攻撃者自身のアカウントにトークンを転送することはできませんが、攻撃者はプール(例:WETH-XAUtプール)のトークンを転送して、プール内のトークン価格を操作して利益を得ることができます。

この脆弱性への修正は、以下に示すように簡単です。

0x1. 脆弱性の悪用方法

PoCを作成してデバッグするには、この目的のためにPhalcon Forkを使用できます。まず、脆弱性がパッチされる前にForkを作成できます。Fork APIを使用してForkを作成した際、ブロック高17038763を使用しました。

ステップI:十分なEtherを用意する

最初のステップは、エクスプロイターのガス料金のために十分なEtherを取得することです。アカウントにEtherがない場合、vitalik.ethからEtherを送信するトランザクションが発行されます。

ステップII:Tether Goldコントラクトの所有権を移譲する

Tether Goldコントラクトのオーナーはマルチシグウォレット(0xC6CDE7C39eB2f0F0095F41570af89eFC2C1Ea828)です。所有権をエクスプロイターに移譲するには、マルチシグトランザクションを送信し、その後トランザクションを確認する必要があります。

ステップIII:Tether Goldコントラクトに特権アカウントを追加する

新しいアカウント0x189e7947a9d9210eec3a41dcf5f536bb1d7726f5を特権アカウントとして追加しました。その後、transferFrom関数を呼び出して、被害者から特権アカウントにXAUtトークンを転送します。

0x2. PoC

PoCは以下のGitHubで確認してください。

Sign up for the latest updates
安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する
Security Insights

安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する

攻撃者は、保護された秘密鍵のコピーを読み取らずに、その秘密鍵を復元できるのでしょうか。『Beyond Secure Storage』の第2部では、乱数の品質不足、エントロピーの損失、署名用ノンスの不備によって鍵の予測や復元が可能になった6件の事例を検証します。そこから鍵生成と署名に関する実装要件を導き出し、決済機関がコードレビューと導入済みシステムのテストを通じて、それらをどう評価できるかを説明します。

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計
Security Insights

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計

攻撃者が秘密鍵を盗まずに、認可されていない操作が有効な署名を得ることは、なぜ可能なのでしょうか。「安全な保管の先へ」第1回では、Bitget、Bybit、Binanceなどの事例を通じて、支払い要求、トランザクションの構築、署名、実行、決済の各段階における認可の不備を検討します。そのうえで、認可されていない操作を防ぎ、損失を抑えるための設計原則を導き出し、レビュー、監査、ペネトレーションテスト、演習によって、それらの防御策をどう検証できるかを説明します。

NEAR Intentsの悪用:返金処理の欠陥とセキュリティ上の教訓
Security Insights

NEAR Intentsの悪用:返金処理の欠陥とセキュリティ上の教訓

NEAR Intentsへの攻撃では、過大な払い戻しイベントを利用し、預け入れた資産が返還された後も内部残高を維持しました。本分析では、レシートの処理の流れと、合計3,865,021 USDTに上るBNB Chainでの7件の出金を再構成します。また、これらの資金流出とプロジェクトが報告した全額回収を区別し、NEARスマートコントラクトの開発と監査におけるセキュリティ上の考慮事項を示します。

Best Security Auditor for Web3

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

BlockSec Audit