誰かが$SUI のスカロップから$142Kをハッキングスキルゼロで盗んだ。

フラッシュローンの天才もいなければ。
オラクル操作もなし。
コードのエクスプロイトもなし。

ただ…誰も見ていない古い契約があっただけ。👀
これがどうやって起こったか👇

#scallop は#sui 💧で稼働中。
sSUIステイカーのためのリワードプールがある。
彼らはずっと前に契約をアップグレードした。

でも古いV2?
まだオンチェーンに存在する。
まだ呼び出せる。
忘れ去られているが、死んでいるわけではない。

#SUI🔥 では、デプロイされた契約は不変。
削除することはできない。
オフにすることもできない。
ただ…永遠に存在し続ける。

攻撃者は2023年11月のV2を見つけた — 17ヶ月前のもので、直接呼び出した。
フロントエンドなし。SDKなし。直接契約呼び出し。

バグは恥ずかしいほど単純だった:

新しいステーキングアカウントは、last_index — 誰かが開始した時刻のタイムスタンプを記録することになっていた。

古いV2では、これが初期化されていなかった。
だから契約は、誰かが初日から#staking いたと仮定していた。

スプールインデックスは20ヶ月間動き続けていた。
1.19億に達した。

攻撃者は136K sSUIをステークした。
契約は162兆のリワードポイントを計算した。
プールには150,000 SUIが1:1のレートであった。

一回のトランザクション。すべてが消えた。

スカロップは契約を凍結した。
損失の100%をカバーした。
2時間以内に再開した。

でも、私を悩ませるのはこれだ:

攻撃者はその後連絡を取り、80%を報酬として返すことを提案した。
つまり、彼らは隠そうともしていなかった。
誰も覚えていない空の家の前のドアから入ってきたのだ。

これは「$SUI の問題」ではない。
これは「#defi のアーキテクチャの問題」だ。

今、あなたのお気に入りのプロトコルにどれだけの古い契約が座っている?🫵

一度監査され。
アップグレードされた。
忘れ去られ。
まだオンチェーンで生きている。

最も恐ろしいハックは洗練されていない。
それらは忍耐強い。