codehawks-2023-07-dsc-m10

[M-10] Protocol can break for a token with a proxy and implementation contract (like TUSD)

보고서

Summary

업그레이드 가능한 토큰을 담보 토큰으로 정한다면 향후 이 토큰의 로직이 변경되어 프로토콜이 깨질 가능성이 있다.

Keyword

upgradeable, erc20

Vulnerability

업그레이더블한 담보 토큰을 이용한다면 프로토콜을 망가뜨리고 유저의 자산이 잠기게 할 수 있다.

TUSD와 같은 토큰을 업그레이더블한 담보 토큰을 이용한다면 프로토콜이 망가질 수 있다. transfer 함수에서 bool 값을 리턴하지 않는다든가, 리베이스 토큰같은 로직으로 변경하는 등의 변화가 발생한다면 프로토콜이 깨질 수 있다.

Impact

향후 담보 토큰의 로직이 변경되어 프로토콜이 깨지고, 중단될 수 있다.

Mitigation

업그레이드 가능한 토큰을 담보 토큰으로 사용한다면, 토큰이 업그레이드 되었을 때 해당 토큰과의 상호작용을 동결하는 로직을 도입하는 것을 고려한다. (ex. MakerDAO에서 사용하는 TUSD 어댑터)


tags: bughunting, codehawks, smart contract, solidity, erc20, upgradeable, severity medium