code4rena-2023-12-shell-protocol-l06

[L-06] minimumOutputAmount in CurveAdaptor can be integrated into the curve functionalities

보고서

Summary

Curve의 함수를 호출할 때는 슬리피지 파라미터를 0으로 넣어 사용하지 않고, 이후 슬리피지를 따로 확인한다. 그냥 Curve의 슬리피지 파라미터를 설정하면 된다.

Keyword

clean code

Vulnerability

Curve 풀에 유동성을 제공하거나 삭제, 스왑할 때 슬리피지를 0으로 설정한다.

    ICurveTricrypto(primitive).remove_liquidity_one_coin(rawInputAmount, indexOfOutputAmount, 0);

이후 따로 슬리피지를 확인한다.

        if (uint256(minimumOutputAmount) > outputAmount) revert SLIPPAGE_LIMIT_EXCEEDED();

굳이 따로 할 필요 없이 Curve의 슬리피지 설정을 이용해도 된다.

Impact

일을 2번 함. 불필요하게 복잡해짐.

Mitigation

Curve의 함수를 호출할 때 슬리피지 파라미터를 설정한다.


tags: bughunting, shell protocol, smart contract, solidity, clean code, severity low