Closed howlbot-integration[bot] closed 5 months ago
koolexcrypto marked the issue as duplicate of #6
koolexcrypto marked the issue as duplicate of #33
koolexcrypto marked the issue as partial-75
koolexcrypto changed the severity to 3 (High Risk)
@koolexcrypto why this issue is marked as partial?
Hi @cholakovvv
All issues that don't mention bypassing the locking duration will have partial credits. still evaluating the percentage
@koolexcrypto I believe this report clearly mentions that the user can deposit 1 wei and then call claim(). Since that function can only be called after the start claim date, it is clear what the person behind the report had in mind.
The issue describes a scenario. but didn't clearly mentioned the impact of bypassing locking duration. This got 75% credit unlike others which will get less.
such issue can definitely cause a lot of unexpected issues depending on the implementation of lpETH and other contracts. Furthermore, that makes the event emission wrong and by the contest page in Code4rena, we can see that they are tracking different events on the backend, potentially causing other issues.
Lines of code
https://github.com/code-423n4/2024-05-loop/blob/40167e469edde09969643b6808c57e25d1b9c203/src/PrelaunchPoints.sol#L262
Vulnerability details
Impact
A user that has locked just 1 wei of the allowed tokens can claim an arbitrary amount of the
lpETH
token.Proof of Concept
This is the
_claim()
function:If a user has locked just 1 wei of any of the allowed tokens, then he can do the following:
claim()
function with the token he has locked for 1 weielse
statement as his token is notETH
claimedAmount
variable is equal toaddress(this).balance
which he just increased as he sent Ether directly to the contractWhile the implementation of the
lpETH
contract is unclear, such issue can definitely cause a lot of unexpected issues depending on the implementation oflpETH
and other contracts. Furthermore, that makes the event emission wrong and by the contest page in Code4rena, we can see that they are tracking different events on the backend, potentially causing other issues.Tools Used
Manual Review
Recommended Mitigation Steps
Change the
_fillQuote()
function to return theboughtETHAmount
variable and use it as theclaimedAmount
instead.Assessed type
Other