code4rena-2022-08-nounsdao-l02
[L‑02] Unused/empty receive()/fallback() function
Summary
용도가 없는 receive/fallback은 삭제하라 제안. 실수로 보낸 ETH는 꺼낼 수 없어 손실되기 때문.
Keyword
token stuck, receive, fallback
Vulnerability
File: contracts/governance/NounsDAOLogicV2.sol
1030: receive() external payable {}ETH를 받아서 처리하는 기능이 없다면 receive나 fallback 함수를 삭제하는 게 좋다. 딱히 용도가 없는데 비어있는 receive, fallback 함수를 작성한다면 누군가 ETH를 보낼 수 있다. 이를 꺼낼 방법이 없으므로 이 ETH는 손실된다.
사실 이 컨트랙트에는 가스비 대납이라는 기능이 있긴 하므로 아예 쓸모가 없는 것은 아니다. 최소한 이벤트 생성 정도는 해주면 되겠다.
Impact
누군가 ETH를 보내면 손실된다.
Mitigation
ETH를 받을 의도가 없다면 receive, fallback 함수를 삭제한다.
Memo
receive 의 역할이 있긴 한데 왜 엑셉 해준건지 의문
tags: bughunting, nouns dao, smart contract, solidity, solidity receive, solidity fallback, asset lock, severity low