Execution Layer rewards are lost #496
Labels
bug
Something isn't working
downgraded by judge
Judge downgraded the risk level of this issue
duplicate-498
grade-a
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
🤖_230_group
AI based duplicate group recommendation
sufficient quality report
This report is of sufficient quality
Lines of code
https://github.com/code-423n4/2024-04-renzo/blob/519e518f2d8dec9acf6482b84a181e403070d22d/contracts/Deposits/DepositQueue.sol#L163
Vulnerability details
Summary
As per the Sponsor:
The
Execution Layer rewards
are not correctly handled, resulting in breaking this invariant.Description
In
DepositQueue.sol
, thereceive()
function is meant to handle ETH sent from outside this protocol, like theExecution Layer rewards
:The problem is that
Execution Layer rewards
are not sent in the usual fashion, like a transfer. Instead, the balance of the proposer of the block is updated directly.This means that the
receive()
function will not be triggered because there will not be a direct ETH transfer. This results in the Execution Layer rewards not being able to be distributed and therefor being lost.Tools used
Manual Review
Recommended Mitigation Steps
Add a function just like
DepositQueue.sweepERC20()
, that can distribute the ETH tokens in theDepositQueue.sol
contract.Assessed type
Other
The text was updated successfully, but these errors were encountered: