ほとんどのプロトコルで取引やステーキングをするには、まずコントラクトに代理でトークンを動かすことをapproveします。これは正常で必要な手順です。問題はデフォルト設定にあります。多くのアプリは期限のない無制限アプルーバルを要求するため、使い終わってからずっと後まで、コントラクトはそのトークンを動かす権限を持ち続けます。
そのコントラクトが後に悪用されたり、最初から悪意あるものだったりした場合、残ったアプルーバルこそが侵入口になります。攻撃者にシードフレーズは要りません。あなたが既に署名した権限だけで、承認済みトークンを抜くには十分です。資産のあるウォレットが直接フィッシングされることなく資金を失う、最も典型的なパターンの1つです。
対策は恐怖ではなく衛生管理です。アプリが対応していれば必要な金額だけをapproveし、使わなくなったアプルーバルはリボークする。アドレスのアプルーバル面を見直せば、どのコントラクトがまだ権限を握っているかが分かり、居座る資格のないものを閉じられます。