今回の攻撃が明らかにしたのは、典型的な整数オーバーフローの問題であり、具体的には型変換の過程におけるデータの切り捨てとして現れます。



技术细节拆解:

1)漏洞定位:问题出现在get_amount_by_liquidity函数的类型转换机制中,从u256到u64的强制转换导致高位数据丢失。

2)攻撃プロセス:

1、攻撃者はadd_liquidity関数を通じて非常に大きな流動性の数量パラメータを渡します;
2、システムはget_delta_b関数を呼び出して必要なBトークンの数量を計算します。
3、計算過程において、2つのu128型データを掛け算すると、理論的な結果はu256型であるべきです;

关键缺陷:函数返回时将u256结果强制转换为u64,导致高位128位数据被截断。

3)利用效果:原需要大量代币才能铸造的流动性额度,现在仅需极少量代币即可完成。 攻击者以极低価格获得巨人额流动性份额,随后通过销毁部分流动性实现资金池套利。

シンプルなアナロジー:8桁の数字しか表示できない電卓で10億×10億を計算するようなもので、20桁の計算結果は後ろの8桁しか表示できず、前の12桁は直接消えてしまいます。攻撃者はこの「計算精度の欠如」の脆弱性を利用しています。

Move语言在资源管理和类型安全方面确实具备显有优势,能够有效防范双重支付、资源泄露等底层安全问题。 但此次Cetus协议出现的是应用逻辑层面的数学计算错误,并非Move语言本身的设计缺陷。

具体的に言うと、Moveの型システムは厳格ですが、明示的な型変換(explicit casting)操作については、依然として開発者の正しい判断に依存しています。プログラムがu256からu64への型変換を積極的に実行する場合、コンパイラーはそれが意図的な設計なのか論理的なエラーなのかを判断できません。

此外,这次安全事件与Sui的共识机制、交易处理、状态管理等核心底层功能完全无关。 Sui Network只是忠实执行了Cetus协议提交的交易指令,漏洞源于应用层协议本身的逻辑缺陷。

说白了,再先进的编程语言也无法完全杜绝应用层的逻辑错误。 Move能够防范大部分底层安全风险,但无法代替开发者进行业务逻辑的边界检查和数学运算的溢出保护。
GET0.69%
B-2.26%
MOVE3.3%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)