外部コントラクトの認証不備でSafeから資産流出
イーサリアム(Ethereum)上でスマートアカウント「セーフ(Safe)」を利用するウォレットから、約780万ドル相当の暗号資産(仮想通貨)が流出するインシデントが9月15日に発生した。ブロックチェーンセキュリティ企業のブロックエイド(Blockaid)やブロックセック(BlockSec)、ゴープラス・セキュリティ(GoPlus Security)などが報告している。
ブロックセックとゴープラス・セキュリティは、今回の問題がセーフ自体ではなく、被害者のセーフで利用されていた外部の実行コントラクトの認証処理にあったと分析している。この認証を回避することで、攻撃者はセーフに接続されたモジュールを経由し、セーフの権限で処理を実行できる状態になったとのこと。ゴープラス・セキュリティは、セーフのコアコントラクトやレンディングプロトコル「アーベ(Aave)」、後述する「rsETH」自体の脆弱性ではないと説明している。
セーフは、複数の署名による資産管理に加え、外部のスマートコントラクトを「モジュール」として接続して機能を拡張できるスマートアカウントだ。モジュールには一定の権限を付与でき、設定された範囲内でセーフに代わって取引を実行できる。
問題となった実行コントラクトには、実行対象などを検証する認証処理が設けられていた。しかしブロックセックとゴープラス・セキュリティの分析では、攻撃者は実行対象を示すパラメータに、コントラクト自身を示す「address(this)」を設定することで認証を回避。これにより攻撃者は、有効化されていたセーフのモジュールを経由し、攻撃者が指定した処理を実行できる状態にしたとのこと。
攻撃者はこの仕組みを悪用し、被害者のセーフが保有する約2,900 aEthrsETHを移動させ、アーベから基となるrsETHを引き出す取引を構築した。aEthrsETHは、リキッドリステーキングトークン「rsETH」をアーベV3に預け入れたポジションを表すトークンだ。
またブロックセックなどの分析では、攻撃者は価値のない「パーミッションレス・アタッカー・トークン(Permissionless Attacker Token:PAT)」を作成し、ユニスワップV4(Uniswap v4)の流動性プールを攻撃に利用したとのこと。
ブロックエイドは、同プールで独自の処理を設定できる「フック(Hook)」を利用してaEthrsETHからrsETHを引き出す仕組みが構築されていたと分析している。一方、ブロックチェーン分析企業ビットクエリ(Bitquery)は、オンチェーン記録の解析から、当該プールにはフックが設定されていなかったと分析している。
MEVボット「Yoink」が攻撃をフロントラン
ただし、元の攻撃者は約2,900 rsETHの大部分を取得できなかった。MEVボット「ヨインク(Yoink)」が攻撃トランザクションを検知し、攻撃者より先に資産を取得したためだ。ブロックセックやゴープラス・セキュリティは、ヨインクが元の攻撃をフロントランしたと分析している。
フロントランとは、他者が送信した未確定のトランザクションを検知し、自身の取引を先に実行させる行為を指す。またMEV(Maximal Extractable Value)とは、ブロックに含まれるトランザクションの順序などを利用して得られる利益のことだ。今回ヨインクは、一般利用者の取引ではなく、攻撃者が送信したトランザクションを先回りした。
ブロックチェーン上の記録では、ヨインク側の取引によって被害者のセーフから約2,900 aEthrsETHが移動し、アーベで同量のaEthrsETHが償還された。これにより、基となる約2,900 rsETHが引き出され、ヨインクへ送付されたことが確認できる。
ヨインクは取得した約2,900 rsETHのうち、約2,882.37 rsETHを別のアドレスへ送付した。残る約17.63 rsETHはユニスワップV4を通じてETHに交換された。これにより、元の攻撃者は狙っていた資産の大部分を取得できず、ヨインクが先に取得する結果となった。なお、約2,882.37 rsETHの送付先アドレスを誰が管理しているかは、公開されているブロックチェーン上の情報だけでは確認できない。
ALERT! Our system detected an attack that drained ~$7.8M from a Gnosis Safe wallet on Ethereum (0x40E93a52F6Af9fCD3b476aeDADD7FeABD9f7AbA8).
— BlockSec Phalcon (@Phalcon_xyz) September 15, 2026
The root cause was a flawed authorization check in the executor contract (0x4f0055926c839D1d960a82CBF84E2eE933958ebC). Setting the supplied… pic.twitter.com/LGb5T2cAOC
1/4
— GoPlus Security 🚦 (@GoPlusSecurity) September 15, 2026
⚠️ Exploit Breakdown
On Sep 15, 2026, a whale’s #Safe wallet was drained via an auth bypass in its strategy executor. Loss: ~$7.8M.
❓ Root Cause
Any caller could set the target to `address(this)` and skip both authorization checks, then `DELEGATECALL` through an… pic.twitter.com/yY0GvBjnJ3
🚨Blockaid exploit detection system detected an exploit on an unidentified user’s Safe on Ethereum.
— Blockaid (@blockaid_) September 15, 2026
~$7.73M confirmed rsETH loss so far.
An attacker used a public keeper multicall to drive a custom Uni V4 LP Safe module into an attacker-created hooked pool; the hook unwrapped…
画像:PIXTA