今週末、ある攻撃者は秘密鍵を保有していないにもかかわらず、KaspaのKRC-20ブリッジウォレットから1億8640万ZEALと544億NACHOを不正に引き出し、レイヤー2(L2)ネットワークを介してトークンをリサイクルし、流動性プールに売却しました。 奇妙な点は、Kaspa自体がハッキングされたわけではないことです。5件の有効なトランザクションにより、オフチェーンインデクサーは実際には誰も署名していない転送を有効なものと誤認し、その結果、ブリッジされたトークンは裏付けを失いました。一部のプールではKAS側の価値の最大99.6%が失われました。
Kasplex KRC-20 インデクサーのシグネチャバイパスにより、2つのトークンプールから資金が流出したとの報告があります。

主なポイント:
- 攻撃者はブリッジウォレットの秘密鍵を保有していないにもかかわらず、544億NACHOを移動させました。
- 偽造送金により、Zealous SwapのプールはKAS側の価値の94%から99.6%を失いました。
- KRC-20オペレーターがシステムのパッチ適用と再インデックス準備を進める中、Igraは主要な出金を一時停止しました。
5件の取引、秘密鍵なし
秘密鍵は、暗号資産を「所有」しているか、単に「どこにあるかを知っている」かの境界線となるはずだ。9月20日、ある人物が、Kaspaのベースチェーンを一切侵害することなく、KRC-20トークンに関してその前提を回避する方法を発見した。
攻撃者はブリッジのカストディアドレスの秘密鍵を制御していなかったにもかかわらず、そこから186,425,259 ZEALと54,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には有効なトランザクションとして認識されてしまいました。 コンセンサス層では何の問題も発生していませんでした。しかし、インデクサーは別の話でした。インデクサーはKRC-20のエンベロープを認識しましたが、スクリプトが標準形式に完全に一致していることを要求しませんでした。その結果、偽造された転送を正当なものとして処理してしまいました。Kasplex自身のAPIでさえ、最初の偽造ZEALトランザクションに対してopAccept: 1を返していました。
誰でも偽造トランザクションを作成できた
最も厄介なのは、攻撃者が何らかの隠された認証情報を発見する必要がなかった点です。 標準的なKaspaアドレスには、偽造されたKRC-20操作を構築するために必要な公開鍵が公開されています。つまり、トークンを別のアドレスに移動しても、根本的な問題は解決されません。インデクサーにパッチが適用され、その履歴が再インデックスされるまでは、理論上、他の場所のKRC-20残高に対しても同じ脆弱性が悪用される可能性があります。
ZEALとNACHOの送金を偽造したのは5件のトランザクションでした。一方、1ユニットずつの小さな引き出し9件はカストディ側によって正当に署名されたものであり、脱出ルートが機能するかどうかをテストするための試行だったようです。興味深いことに、正当なトランザクションはこれらの微小な取引でした。カストディウォレットには他にも約50種類のKRC-20トークンが保有されていましたが、攻撃者はそのうち2つを選びました。
トークンは残っているが、裏付けとなる資産はない
日曜日の朝、Igra氏によると、カストディウォレットのZEALとNACHOはすべて奪われ、レイヤー2ネットワーク上にはL1での完全な裏付けがないまま97,651,212 ZEALと42,570,879,908 NACHOが残されたとのことです。 さらに45億NACHOがL1上で攻撃者の手元に残りました。
IgraはKaspa L1へのiKAS出金とHyperlane経由の送金を一時停止するとともに、ユーザーに対しKRC-20トークンのブリッジやL2の分散型取引所(DEX)でのZEAL・NACHO購入、影響を受けたプールへの流動性供給を行わないよう警告しました。 ネイティブのKAS、Kaspaコンセンサス、およびKRC-20トークンとしてブリッジされていなかったIgraの資産については影響を受けていないと説明されました。ソフトウェアの修正だけではこの混乱を解消できません。 Zealous Swapは、オペレーターがインデクサーにパッチを適用し、履歴を再インデックスする必要があると述べ、空の署名、不正な形式のタグ、およびOP_ENDIFを超えて続くスクリプトを拒否すべきだと指摘した。一方、Nacho the Katは、コミュニティがKCC-20への移行を目指していると述べている。KCC-20は、トークンのルールをスクリプトに組み込み、ネットワーク自体がそれを強制するように設計された規格である。
この問題は、ここ数週間にわたって相次いだ一連の悪用、バグ、ハッキング、データ漏洩に続くものです。土曜日には、ライトニング・ネットワークのカストディアルおよびノンカストディアルインフラプロバイダーであるBlink Walletが、「数十件」のカストディアルアカウントから資金が流出したことを明らかにしました。 サイバーセキュリティ企業のDCENTも、今週、DCENT App Walletsから資金が不正に引き出されたことを確認しました。こうした事態はサイバーセキュリティ攻撃が激化している最中に発生しており、一部ではAIがこの一連の攻撃を助長しているのではないかと疑われています。
この記事はAIを使用して英語から翻訳されました。英語の原文が正式な情報源であり、自動翻訳には、特に法律および規制に関する用語において不正確な部分が含まれる場合があります。











