Ether may be permanently locked if a call to refund address fails #81
Labels
2 (Med Risk)
Assets not at direct risk, but function/availability of the protocol could be impacted or leak value
bug
Something isn't working
duplicate-25
insufficient quality report
This report is not of sufficient quality
unsatisfactory
does not satisfy C4 submission criteria; not eligible for awards
Lines of code
https://github.com/code-423n4/2024-01-decent/blob/main/src/UTBExecutor.sol#L54
Vulnerability details
Impact
Users may lose Ether in the event of both action execution and refund call failure in the
UTBExecutor.sol::execute
function. While it is assumed that users must supply their own address asrefund
, there are no safety checks to verify thatrefund
is indeed an Externally Owned Account (EOA). As a consequence of arefund.call
failure, the Ether amount will remain in the UTBExecutor.sol contract with no option for users to claim these funds thus Ether amount becomes permanently locked in the contract.Proof of Concept
Tools Used
Manual review
Recommended Mitigation Steps
Consider adding an access-controlled
withdrawEth
function.Assessed type
call/delegatecall
The text was updated successfully, but these errors were encountered: