Beosin:sDAO 계약 비즈니스 로직에 취약점이 존재하여 공격자가 1.3만 BUSD 이상을 획득함
ChainCatcher 메시지에 따르면, 블록체인 보안 감사 회사 Beosin의 Beosin EagleEye 보안 위험 모니터링, 경고 및 차단 플랫폼의 모니터링 결과, BNB 체인에서 sDAO 프로젝트가 취약점 공격을 받았습니다. Beosin 분석에 따르면 sDAO 계약의 비즈니스 로직에 오류가 있으며, getReward 함수는 계약이 보유한 LP 토큰과 사용자가 추가한 LP 토큰을 매개변수로 사용하여 보상을 계산합니다. 계산된 보상은 사용자가 추가한 LP 토큰 수와 정비례하고, 계약이 보유한 총 LP 토큰 수와는 반비례하지만, 계약은 withdrawTeam이라는 방법을 제공하여 계약이 보유한 BNB 및 지정된 토큰을 모두 계약의 지정된 주소로 보낼 수 있습니다. 이 함수는 누구나 호출할 수 있습니다.이번 공격자는 그 중에 LP 토큰을 추가한 후, withdrawTeam 함수를 호출하여 LP 토큰을 모두 지정된 주소로 보냈고, 즉시 계약에 극소량의 LP 토큰을 다시 전송했습니다. 이로 인해 공격자가 이후 getReward를 호출하여 보상을 받을 때 사용된 계약이 보유한 총 LP 토큰 수는 극소값이 되어 보상이 비정상적으로 확대되었습니다. 최종적으로 공격자는 이 취약점을 통해 약 13662개의 BUSD를 획득했습니다.