Kasplex KRC-20インデクサの署名バイパスによるトークンプールの枯渇

2時間前
4分読む
2 ビュー

攻撃の概要

今週末、攻撃者がKaspa KRC-20ブリッジウォレットからプライベートキーを持たずに186.4百万ZEAL54.4億NACHOを引き出しました。その後、レイヤー2(L2)ネットワークを通じてトークンをリサイクルし、流動性プールに売却しました。奇妙なことに、Kaspa自体はハッキングされていませんでした。

攻撃の手法

5つの有効なトランザクションがオフチェーンインデクサを欺き、誰も実際に署名していない転送を認識させました。これにより、ブリッジされたトークンは裏付けがなくなり、一部のプールではKAS側の価値が最大99.6%も剥奪されました。

プライベートキーは、暗号を所有することと単にその位置を知っていることの境界線であるべきです。9月20日、誰かがKRC-20トークンに対してその仮定を回避する方法を見つけましたが、Kaspaのベースチェーンを破ることはありませんでした。

トランザクションの詳細

攻撃者はブリッジ保管アドレスから186,425,259 ZEAL54,397,983,246 NACHOを移動させましたが、彼らはそのプライベートキーを制御していませんでした。それらのトークンは、通常のブリッジデポジットとして同じ保管アドレスに戻され、Igra LabsのEVMレイヤーとKasplex L2でミントされ、Zealous Swap流動性プールに投げ込まれました。

影響と結果

事態が収束する頃には、攻撃者のL2 ZEALとNACHOの残高は空になり、影響を受けたプールはKAS側の価値が94%から99.6%失われていました。ここでのポイントは、Kaspaのレイヤー1(L1)は本来の機能を果たしていたということです。

技術的な詳細

KRC-20トークンの所有権はKaspaのコンセンサスによって直接強制されていません。トークンの指示はKaspaトランザクション内にあり、オフチェーンのKasplexインデクサがそれらの指示を読み取り、誰が何を所有しているかを判断します。

通常、KRC-20の転送には公開鍵、トークンの指示、有効な署名が含まれます。攻撃者はその馴染みのある構造を維持しましたが、空の署名を提供し、OP_ENDIFの後にOP_NOTを追加しました。空の署名はOP_CHECKSIGがfalseを返す原因となり、トランザクションを即座に無効にするのではなく、追加のOP_NOTがその結果をtrueに反転させ、Kaspaには有効なトランザクションが残りました。

今後の対策

ソフトウェアを修正するだけでは混乱を解消できません。Zealous Swapは、オペレーターがインデクサをパッチし、その履歴を再インデックスし、空の署名、誤ったタグ、OP_ENDIFを超えて続くスクリプトを拒否する必要があると述べています。

この問題は、過去数週間にわたる一連の悪用、バグ、ハッキング、データ侵害に続いています。土曜日、Lightning Networkの保管および非保管インフラプロバイダーであるBlink Walletは、「数十」の保管アカウントが枯渇したことを明らかにしました。