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
BitgetのオフチェーンでのUSD 3億8,750万ドル流出:鍵とコントラクトを超えて
Security Insights

BitgetのオフチェーンでのUSD 3億8,750万ドル流出:鍵とコントラクトを超えて

2026年9月24日、攻撃者がサードパーティ製セキュリティ製品の脆弱性を悪用し内部認証情報を取得、出金命令を偽造。Ethereum、他のEVMネットワーク、XRP Ledger、Zcash、TRON上のBitget運用ウォレットから約3億8750万ドルが流出。秘密鍵とコールドウォレットは無事。本稿は攻撃経路と資金フロー、即時換金とエコシステムの回復対応を整理し、組織向けの体系的な多層防御策を提案、認可済みブロックチェーン侵入テストによる層間検証手法を解説する。

約1,130万ドル(11.3M)の損失:Multicall Router、Nostra | BlockSec Weekly
Security Insights

約1,130万ドル(11.3M)の損失:Multicall Router、Nostra | BlockSec Weekly

2026/09/14-20のレポート。Ethereum・Starknetで計約1130万ドル被害の2件を分析。1件目はマルチコールルーターが自身を宛先と誤認し、Safeのゲートウェイがルーターの権限で約2,900 aEthrsETHを攻撃者のUniswap v4プールへ流出。2件目はNostraのオラクルが最小1ソースで集約可能なため、3つ中2ソースの平均値がNSTRを約49.52ドルと過大評価し、約350万ドルの借入を許した。

約3.2億ドル消失:Liquid NetworkとSymbiosisのエクスプロイト | BlockSec
Security Insights

約3.2億ドル消失:Liquid NetworkとSymbiosisのエクスプロイト | BlockSec

本レポート(2026/09/07-09/13)は、約3.2億ドルの損失を招いた2件のセキュリティ事件を検証。前回未報告の9/6 Liquid Networkの脆弱性では、証明キャッシュのキー生成に境界区切りがなく、他出力の検証結果が流用され4,000枚の無担保L-BTCが作成・ペグアウトされた。SymbiosisのBitcoinルートでは、入金者指定のIDを使用し手数料の負値チェックを怠り、330satの入金で466億syBTCが発行され、流動性提供者らに約9.97BTC(約77万ドル)の損失が発生。

Best Security Auditor for Web3

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

BlockSec Audit