BlockSec: DBXen 계약이 공격받아 약 15만 달러의 손실 발생

PANews는 3월 12일 BlockSec Phalcon 모니터링 결과에 따르면 DBXen 계약이 오늘 아침 공격을 받아 약 15만 달러의 손실이 발생했다고 보도했습니다. 근본적인 원인은 ERC2771 트랜잭션에서 발신자 신원이 일관되지 않은 데 있습니다. `burnBatch()` 함수에서 `gasWrapper()` 데코레이터는 `_msgSender()`(실제 사용자)를 사용하여 상태를 업데이트하는 반면, 콜백 함수 `onTokenBurned()`는 `msg.sender`(포워더)를 사용합니다. 이로 인해 `accCycleBatchesBurned`는 사용자에 대해 기록되지만, `lastActiveCycle`은 포워더에 대해 잘못 업데이트됩니다. 이러한 불일치로 인해 `claimFees()` 및 `claimRewards()`의 로직이 제대로 작동하지 않습니다. `updateStats()` 함수가 사용자에게 실행될 때, `accCycleBatchesBurned`는 업데이트되었지만 `lastActiveCycle`은 업데이트되지 않았기 때문에 계약이 처리되지 않은 소각 배치가 있다고 잘못 가정하여 보상과 수수료를 잘못 계산하게 되고, 이로 인해 공격자가 초과 자금을 빼돌려 이익을 취할 수 있게 됩니다.

공유하기:

작성자: PA一线

이 내용은 시장 정보 제공만을 목적으로 하며, 투자 조언을 구성하지 않습니다.

PANews 공식 계정을 팔로우하고 함께 상승장과 하락장을 헤쳐나가세요