슬로우미스트, COVER 해킹 분석
페이지 정보
본문
29일(현지 시간) 블록체인 보안 전문 업체 슬로우미스트가 Cover Protocol 해킹 피해 상황을 분석했다.
1. 유저, Cover 프로토콜 Blacksmith 컨트랙트 중 deposit 함수 통해 BPT 토큰 스테이킹 가능
2. 해커, 첫 deposit – withdraw 진행. update Pool 함수를 통해 자금풀 업데이트. 이후 accRewardsPerToken을 통해 누적 보상 기록
3. claimCoverRewards 함수 통해 보상 분배. 이후 rewardWriteoff 함수로 기록
4. 해커, 첫 withdraw 후 일부 잔여 BPT로 스테이킹 재차 진행
5. 해커, 두 번째 deposit 진행. claimRewards를 통해 보상 현금화
6. rewardWriteoff 계산 과정에서 문제 발생
해커, 2차 deposit-claimRewards 진행 시 획득한 Pool값을 memory로 정의. 이때 memory 중 획득한 Pool 값은 해커가 처음 withdraw 진행 시 업데이트 한 값
7. 즉 해당 Pool 값은 이전 값. accRewardsPerToken 또한 이전의 값
8. 이후 또 한번의 update Pool 진행. 해커가 처음 withdraw 진행할 때 자금풀 내 lpTotal는 이미 작아진 상태. 최종 accRewardsPerToken은 커짐.
9. 이때 해커가 부여받은 accRewardsPerToken은 이전의 것으로 비교적 작은 값. rewardWriteoff 계산 시 획득한 수치 또한 상대적으로 작아짐
10. 하지만 해커가 claimRewards 진행 시 사용한 것은 자금풀 업데이트 후의 accRewardsPerToken 값으로, 함수값 격차에 따른 보상 계산 편차 발생
11. 해커, 보상 토큰 발행 시 많은 양의 COVER 토큰을 생성. 엄청난 규모의 토큰 추가 발행으로 이어짐
관련자료
-
이전
-
다음