![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
Community News에 따르면 5 월 22 일 SUI 생태계의 유동성 제공 업체 인 Cetus는 공격당한 것으로 의심되었습니다.
A liquidity provider, Cetus, on the SUI ecosystem was suspected to be undergoing a significant liquidity depth reduction, and multiple token trading pairs on Cetus experienced declines, with expected losses exceeding $230 million.
SUI 생태계의 유동성 제공 업체 인 Cetus는 유동성 깊이 감소를 겪고있는 것으로 의심되었으며, Cetus의 여러 토큰 거래 쌍은 감소를 경험했으며 예상 손실은 2 억 2 천만 달러를 초과했습니다.
Cetus was founded in March 2024 by experienced blockchain developers and researchers. The protocol aims to build a decentralized exchange that is fast, efficient, and user-friendly. Cetus provides liquidity provider services for the SUI ecosystem and supports various token trading pairs, such as haSUI/SUI, vSUI/SUI, and USDC/SUI.
Cetus는 2024 년 3 월 숙련 된 블록 체인 개발자와 연구원에 의해 설립되었습니다. 이 프로토콜은 빠르고 효율적이며 사용자 친화적 인 분산 교환을 구축하는 것을 목표로합니다. Cetus는 SUI 생태계에 유동성 공급자 서비스를 제공하며 Hasui/Sui, VSUI/SUI 및 USDC/SUI와 같은 다양한 토큰 거래 쌍을 지원합니다.
After the incident occurred, the SlowMist security team intervened for analysis and issued a security alert. Below is a detailed analysis of the attack method and fund transfer situation.
사건이 발생한 후, Slowmist Security 팀은 분석을 위해 개입하여 보안 경고를 발행했습니다. 아래는 공격 방법 및 펀드 이전 상황에 대한 자세한 분석입니다.
The core of this incident is that the attacker carefully constructed parameters to cause overflow while bypassing detection, ultimately allowing a very small token amount to exchange for massive liquidity assets.
이 사건의 핵심은 공격자가 탐지를 우회하면서 오버플로를 유발하기 위해 신중하게 매개 변수를 구성하여 궁극적으로 매우 작은 토큰 금액이 대규모 유동성 자산을 교환 할 수 있다는 것입니다.
The attacker first borrowed 10,024,321.28 haSUI through a flash loan, causing the pool price to plummet from 18,956,530,795,606,879,104 to 18,425,720,184762886, with a price drop of 99.90%.
공격자는 먼저 플래시 대출을 통해 10,024,321.28 HASUI를 빌려서 수영장 가격이 18,956,530,795,606,879,104 ~ 18,425,720,184762886에서 99.90%로 급락했습니다.
The attacker carefully selected an extremely narrow price range to open a liquidity position:
공격자는 유동성 위치를 열기 위해 매우 좁은 가격 범위를 신중하게 선택했습니다.
Tick lower limit: 300000 (Price: 60,257,519,765,924,248,467,716,150)
진드기 하한 : 300000 (가격 : 60,257,519,765,924,248,467,716,150)
Tick upper limit: 300200 (Price: 60,863,087,478,126,617,965,993,239)
진드기 상한 : 300200 (가격 : 60,863,087,478,126,617,965,993,239)
Price range width: only 1.00496621%
가격 범위 폭 : 1.00496621% 만
Next is the core of this attack, where the attacker claimed to add a massive liquidity of 10,365,647,984,364,446,732,462,244,378,333,008 but due to the vulnerability, the system only accepted 1 token A.
다음은이 공격의 핵심이며, 공격자는 10,365,647,984,364,446,732,462,244,378,333,008의 대규모 유동성을 추가한다고 주장했지만, 취약성으로 인해 시스템은 1 Token A 만 받아 들였습니다.
Let's analyze why the attacker could exchange a massive liquidity with just 1 token. The core reason lies in the overflow detection bypass vulnerability in the checked_shlw function in the get_delta_a function. The attacker exploited this, causing the system to miscalculate the actual amount of haSUI needed to add. Due to the overflow not being detected, the system misjudged the required amount of haSUI, allowing the attacker to exchange only a very small number of tokens for a large amount of liquidity assets, thus executing the attack.
공격자가 왜 1 토큰으로 대규모 유동성을 교환 할 수 있는지 분석합시다. 핵심 이유는 get_delta_a 함수의 Checked_shlw 함수의 오버 플로우 감지 우회 취약성에 있습니다. 공격자는 이것을 이용하여 시스템이 추가하는 데 필요한 실제 hasui의 양을 잘못 계산하게했습니다. 오버플로가 감지되지 않기 때문에 시스템은 필요한 양의 hasui를 잘못 판단하여 공격자는 많은 양의 유동성 자산에 대해 매우 적은 수의 토큰 만 교환하여 공격을 실행할 수있게했습니다.
When the system calculates how much haSUI is needed to add such massive liquidity:
시스템이 그러한 대규모 유동성을 추가하기 위해 얼마나 많은 Hasui가 필요한지 계산할 때 :
The key here is that there is a serious flaw in the implementation of the checked_shlw function. In fact, any input value less than 0xffffffffffffffff << 192 will bypass overflow detection. However, when these values are left-shifted by 64 bits, the result exceeds the representable range of u256, causing the high-order data to be truncated, resulting in a obtained value much smaller than the theoretical value. As a result, the system will underestimate the required amount of haSUI in subsequent calculations.
여기서 핵심은 Checked_shlw 함수의 구현에 심각한 결함이 있다는 것입니다. 실제로, 0xfffffffffffffffffffffffff << 192 미만의 입력 값은 오버 플로우 감지를 우회합니다. 그러나 이러한 값이 64 비트로 좌회전되면 결과는 U256의 대표 범위를 초과하여 고차 데이터가 잘려져 이론적 값보다 훨씬 작은 값을 얻습니다. 결과적으로 시스템은 후속 계산에서 필요한 양의 hasui를 과소 평가합니다.
Error mask: 0xffffffffffffffff << 192 = a very large value (about 2^256 - 2^192)
오류 마스크 : 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff << 192 = 매우 큰 값 (약 2^256-2^192)
Almost all inputs are less than this mask, bypassing overflow detection
거의 모든 입력은이 마스크보다 적어 오버플로 감지를 우회합니다.
The real problem: when n >= 2^192, n << 64 exceeds the u256 range and gets truncated
실제 문제 : n> = 2^192 일 때, n << 64는 U256 범위를 초과하고 잘린다.
The intermediate value constructed by the attacker liquidity * sqrt_price_diff = 6277101735386680763835789423207666908085499738337898853712:
공격자 유동성 * SQRT_PRICE_DIFF = 627710173538680763835789423207669085499738337888853712 :
Less than the erroneous mask, bypassing overflow detection
오버플로 감지를 우회하는 잘못된 마스크보다 적습니다
But after left-shifting 64 bits, it exceeds the maximum value of u256, causing the overflow part to be truncated
그러나 왼쪽으로 이동 한 후 64 비트가 발생한 후 U256의 최대 값을 초과하여 오버 플로우 부분이 잘립니다.
This leads to a final calculation result of approximately less than 1, but since it is rounded up, the quotient is calculated to equal 1
이로 인해 최종 계산 결과는 대략 1보다 작지만 반올림되므로 몫은 1으로 계산됩니다.
Finally, the attacker removed liquidity and obtained massive token profits:
마지막으로 공격자는 유동성을 제거하고 대규모 토큰 이익을 얻었습니다.
First removal: Obtained 10,024,321.28 haSUI
첫 번째 제거 : 10,024,321.28 Hasui를 얻었습니다
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.