느린 안개: DFX Finance가 공격을 받았으며, Curve 계약의 플래시 론 함수에 재진입 보호가 적용되지 않았습니다
ChainCatcher 메시지에 따르면, 느린 안개 보안 팀의 정보에 의하면 ETH 체인上的 DFX Finance 프로젝트가 공격을 받았으며, 공격자는 약 231,138 달러를 획득했습니다. 느린 안개 보안 팀은 다음과 같은 내용으로 소식을 전했습니다:공격자는 먼저 Curve라는 계약의 viewDeposit 함수를 호출하여 계약의 예치금 상황을 확인한 후, 반환된 예치금 상황에 따라 적절한 플래시 론에 필요한 금액을 구성했습니다.이어서 Curve 계약의 flash 함수를 통해 플래시 론을 진행했으며, 해당 함수는 재진입 잠금 보호가 되어 있지 않아 공격자가 플래시 론의 flashCallback 함수로 계약의 deposit 함수를 호출하여 예치금을 진행했습니다.예치금 함수는 외부에서 ProportionalLiquidity 계약의 proportionalDeposit 함수를 호출했으며, 이 함수에서는 두 번째 단계에서 빌린 자금을 Curve 계약으로 다시 전송하고, 공격 계약에 대한 예치금 기록을 하며, 공격 계약에 대한 예치금 증서를 발행했습니다.예치금 함수의 재진입을 통해 자금을 Curve 계약으로 전송함으로써 플래시 론 상환의 잔액 검사를 통과했습니다.마지막으로 withdraw 함수를 호출하여 출금을 진행했으며, 출금 시 세 번째 단계에서 예치금에 대한 공격 계약의 기록을 소각하여 약 2,283,092,402 개의 XIDR 토큰과 99,866 개의 USDC 토큰을 성공적으로 인출하여 이익을 얻었습니다.이번 공격의 주요 원인은 Curve 계약의 플래시 론 함수가 재진입 보호를 하지 않아 공격자가 예치금 함수를 재진입하여 토큰을 전송하여 플래시 론 상환의 잔액 판단을 통과했기 때문입니다. 예치금 시 기록이 있었기 때문에 공격자는 성공적으로 출금하여 이익을 얻을 수 있었습니다.(출처 링크)