-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
HighHigh severity security findingHigh severity security finding⎈ QuantStampQuantStamp audit findingQuantStamp audit finding
Description
Severity: High
Files Affected
cadence/contracts/FlowYieldVaultsEVM.cdcsolidity/src/FlowYieldVaultsRequests.sol
Description
When a CREATE/DEPOSIT request fails after funds have been moved to Cadence, the returnFundsAndFail() function bridges funds directly back to the user's EVM address via bridgeFundsToEVMUser(), then calls completeProcessing() with success: false.
The EVM contract then credits the same amount to pendingUserBalances, allowing the user to claim via claimRefund(). The user receives funds twice: once via direct bridge, once via refund claim.
This is exploitable whenever the COA holds sufficient balance of the refund token (operational funding, dust accumulation, residual balances).
Recommendation
Implement single-path refund semantics. Either bridge directly to user OR credit pendingUserBalances, never both.
Parent Issue: #15
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
HighHigh severity security findingHigh severity security finding⎈ QuantStampQuantStamp audit findingQuantStamp audit finding