攻撃者の住所:0x322696471792440499b1979e0a440491e870667a
Address of attacked contract:
0x4edda16ab4f4cc46b160abc42763ba63885862a4
Address of attacked transaction:
攻撃された取引の一部。
0x49ca5e188c538b4f2efb45552f13309cc0dd1f3592eee54decfc9da54620c2ec
0x3629ad588ac120163792e92b6c43bd4bdc5bf35cac66eb7f3a0267df93abc849
0x0a89b8670c40b4067b9522a5933c3bf8c44c968103aa642b04c65d49ad9e6457
0x5e468cba495e5f6165418fb9d87d824309c54261055425f33f588dd3b3abbcea
0x8710034dadecfc8c26f651c612f613fffdece6e2f9957b9ec8ab843218168c1d
0x9da398ed274c8cfa774b36003fa8c930d3430d0fc5889b5008830fd6463f68a9
0x2e3d4332f66a334e0170187011ed673dc222f95bf4443b618e08f8052437ef7a
0x5a15fdc57c35f2305aaa0bb95b109ad412b17406d737d137190fe5867393339d
0x8ef3765665cd849cdf9132ab37caf6aa0f891e1f7d9f418f86a6ab6ea38b6f5b
0xa9fa04b033afbed2218679aea92e9429a5f7839d0b4c65358ebf9ba20efcd021
Attacking the Core
このインシデントにおける攻撃の核心は、redeem関数コールを処理する際にユーザーが入力した外部パラメータを適切に検証しないコントラクトを悪用することでした。このパラメータは、資産の交換を制御する重要なデータであり、通常、特定の取引指示やルーティング情報が含まれています。この外部パラメータを悪意を持って構築することで、攻撃者は不正な資産移動を可能にしました。取引分析
攻撃者は、ゼロの数量の償還を要求するために、償還関数を複数回呼びました。ゼロの償還は通常、実際のお金の動きを引き起こさないので、これだけでは無害に見えるかもしれません。

しかし、redeem関数をフォローアップすると、契約によって許可された資産のリストを繰り返し実行し、現在の資産がユーザーが受け取りたいものでない場合、入力されたdataListパラメータを解析し、1inch Routerの対応する関数を外部から呼び出して資産の償還を実行することがわかります。

また、入力されるdataListはチェックされ検証されないため、dataListは攻撃されません。ここで渡されるdataListはチェックも検証もされないため、攻撃者は悪意のある値を構築して、1inch RouterコントラクトのunoswapTo関数を実行し、任意の制御されたトークン交換操作を実行することができます。

その結果、Yiedl BULLコントラクトののWBNB-ADAトークンは、攻撃者のアドレスへのBNBに変換されました。

このようにして、攻撃者は、実際に株式を所有することなく、Yiedl BULL契約から攻撃者のアドレスへのWBNB-ADA Tokenの償還をトリガーすることができます。このように、実際に償還株を所有することなく、攻撃者は dataList パラメータによって制御されるトークン交換操作をトリガーし、自身の資産を枯渇させることなく、利益のために契約された資金を複数回移動させることができます。
概要
この攻撃の核心は、関数がユーザーによって入力されたdataListパラメーターを適切に検証しないことで、攻撃者は悪意のある外部データを構築し、コントラクトを盗むために1inchを使用することができます。攻撃者は悪意のある外部データリストを構築し、1inchを使用して契約からトークンを盗むことができました。SlowFogのセキュリティチームは、プロジェクトオーナーが開発において、特にコントラクト内のファンドの操作に関しては、厳格なパラメータ検証メカニズムを実装し、すべての外部呼び出しが期待される動作規範に適合するようにし、同様のインシデントが再び起こらないようにコントラクトロジックの徹底的なセキュリティ監査を実施することを推奨します。