Back to Blog

Vee Financeセキュリティインシデントの真の原因

Code Auditing
2021年9月22日
4 min read

VEE Financeは、最近のセキュリティインシデントに関するレポートを公開しました。レポートでは、主な原因として「Vee Financeオラクルマシンの価格操作とオラクルマシン価格の取得が小数点で処理されなかったため、スワップ前の期待されるスリッページチェックが機能しなかった」と述べています。

「事故の主な原因は、レバレッジ取引の注文作成プロセスにおいて、オラクルが価格フィードのソースとしてPangolinプールの価格のみを使用し、プールの価格が3%以上変動したことです。オラクルは価格を更新し、攻撃者はPangolinプールの価格を操作しました。Vee Financeオラクルマシンの価格操作とオラクルマシン価格の取得が小数点で処理されなかったため、スワップ前の期待されるスリッページチェックが機能しませんでした。」 — VEE Financeが公開したレポートより抜粋。

しかし、我々の慎重な調査の結果、これはそうではない可能性があることがわかりました。本当の理由は、攻撃者が偽のctokenBを作成し、コントラクトに渡したことです。ctokenBは攻撃者が制御できるため、トークン価格の計算に使用される基盤トークンを任意に返すことができます。これが攻撃の真の根本原因です。

全体プロセス

createOrderERC20ToERC20という外部関数があり、ユーザーは誰でも、コントラクトに担保を預けることで取得したctokenを使用してトークンスワップを作成するために呼び出すことができます。ctokenには、実際のトークンを表す基盤トークンがあります。

通常のケースでは、レバレッジを使用してトークンペアを取引するためにcreateOrderERC20ToERC20を呼び出す際、dappは取引で損失が発生しないことを保証する必要があります(そうでなければ、dappは損失を被ります)。これはgetAmountOutMin関数を呼び出すことで強制されます。

例えば、dappに0.95 ETHを預け入れ、0.5 ETHの価値を持つctoken(過剰担保)を取得したとします。その後、3倍のレバレッジを使用して、ユーザーに代わってdappに1.5 ETHを別のトークン(例えばtokenX)と取引するように依頼できます。この場合、損失を防ぐために、dappは取引されたtokenXの価値が0.95 * 1.5 ETHを下回らないことを保証する必要があります(そうでなければ、dappは損失を被るリスクがあります)。dappは外部価格オラクルを利用してETHとtokenXの価値を計算します。

しかし、createOrderERC20ToERC20関数は、渡されたctokenBを検証しません。したがって、攻撃者は自身のコントラクトをctokenBとして実装し、createOrderERC20ToERC20関数に渡すことができました。その結果、この偽のctokenBは、createOrderERC20ToERC20とgetAmountOutMinで呼び出されたときに基盤トークンとしてLINK(0x5947bb275c521040051d82396192181b413227a3)を返しますが、IPriceOracle(oracle).getUnderlyingPrice(createParams.ctokenB)で呼び出されたときには基盤トークンとしてBTCを返します。これにより、isRightPriceチェックを回避できます。なぜなら、価格計算に使用されるトークンは(LINKではなく)BTCだからです。これは、priceBの戻り値、0x15e1549d1216fe9fc032e7c00000(443783124870000000000000000000000)で確認できます。これはBTCの価格です。

結論

要約すると、攻撃者はctokenBのチェック漏れを悪用しました。ctokenBは信頼できるものではないため、ctokenBが返す基盤トークンも信頼できません。しかし、この攻撃で価格オラクルは侵害されていません。

まとめ

DeFiプロジェクトを安全にすることは容易ではありません。コード監査に加えて、コミュニティはプロジェクトのステータスを積極的に監視し、攻撃が発生する前にブロックするべきだと考えています。

BlockSecについて

BlockSecは、2021年に世界的に著名なセキュリティ専門家グループによって設立された、先駆的なブロックチェーンセキュリティ企業です。同社は、Web3の世界のセキュリティと使いやすさを向上させ、その大規模な採用を促進することに尽力しています。この目的のため、BlockSecはスマートコントラクトおよびEVMチェーンのセキュリティ監査サービス、セキュリティ開発と脅威のプロアクティブなブロックのためのPhalconプラットフォーム、資金追跡と調査のためのMetaSleuthプラットフォーム、そしてWeb3ビルダーが仮想通貨の世界を効率的にサーフィンするためのMetaSuites拡張機能を提供しています。

現在までに、同社はMetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300社以上の著名なクライアントにサービスを提供し、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの著名な投資家から2回の資金調達で数千万米ドルを受け取っています。

公式サイト:https://blocksec.com/

公式Twitterアカウント:https://twitter.com/BlockSecTeam

Sign up for the latest updates
約387万 USDの損失:Autheo NetworkとUNCXへのハッキング | BlockSecウィークリー
Security Insights

約387万 USDの損失:Autheo NetworkとUNCXへのハッキング | BlockSecウィークリー

この週次レポートでは、2026年10月12日–2026年10月18日に発生した3件のセキュリティインシデントを取り上げます。推定損失額の合計は約387万 USDです。Autheo Networkでは秘密鍵の侵害により約176万 USD、Qubic Walletでは脆弱なシード生成により約130万 USDの損失が発生しました。また、Ethereum、BNB Chain、Base、Robinhood Chain上のUNCX NetworkのSmart Token Vesting V2コントラクトでは、会計処理上の誤りにより約80.7万 USDの損失が発生しました。重点的に取り上げるUNCXの分析では、シェア総数の計算に欠陥があり、異なるトークン対シェア比率で作成されたベスティングのトランシェが混同された結果、共通プールからの過剰な引き出しが可能になった仕組みを説明します。

約54万2,000ドルの損失:MakerDaoBotへの攻撃 | BlockSec週間ニュース
Security Insights

約54万2,000ドルの損失:MakerDaoBotへの攻撃 | BlockSec週間ニュース

本レポートは2026/10/05~10/11にEthereumで発生したセキュリティ事故1件を扱う。推定損失は約54.2万ドル。攻撃コントラクトは悪意あるアダプターを展開し、アクセス制御のないMakerDaoBot関数に渡して、ボット内部のMakerDAO残高への操作権限を付与させた。アダプターは旧ETH-Aオークション4件を決済し、ETH-A担保200単位をWETHに変換。攻撃コントラクトがWETHをETHに戻し、攻撃者へ200 ETHを送金した。

約4.18億ドル損失:Bitget、NEAR Intentsのエクスプロイト | BlockSec Weekly
Security Insights

約4.18億ドル損失:Bitget、NEAR Intentsのエクスプロイト | BlockSec Weekly

本隔週セキュリティレポートは、2026年9月21日から10月4日までの8件のインシデントを記録し、Ethereum、BNB Chain、Solana、Bitcoin、TRON、XRP Ledger、Zcash、Avalanche、NEARなどで約4億1840万ドルの損失が発生。詳細分析では、Bitgetの3.875億ドルのサードパーティ製品脆弱性と、NEAR Intentsの387万ドルの返金検証欠陥および状態ロールバック欠落を取り上げる。

Best Security Auditor for Web3

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

BlockSec Audit