Closed code423n4 closed 1 year ago
0xSorryNotSorry marked the issue as primary issue
Sidu28 marked the issue as sponsor disputed
No method to manipulate the slot root was supplied as part of this report. It is checked against.
GalloDaSballo marked the issue as unsatisfactory: Insufficient proof
Asking Warden to add more proof, closing in the meantime
GalloDaSballo marked the issue as duplicate of #388
GalloDaSballo marked the issue as partial-50
The warden forgot to say that you can pass an empty proof to pass the validation, but they did it in the POC
Awarding 50% because the finding was "saved" as a dup as the contents of this report alone were too obtuse
Lines of code
https://github.com/code-423n4/2023-04-eigenlayer/blob/5e4872358cd2bda1936c29f460ece2308af4def6/src/contracts/pods/EigenPod.sol#L340-L358 https://github.com/code-423n4/2023-04-eigenlayer/blob/5e4872358cd2bda1936c29f460ece2308af4def6/src/contracts/libraries/BeaconChainProofs.sol#L245-L294
Vulnerability details
Impact
Below is a portion of the verifyAndProcessWithdrawal function.
withdrawalProofs is used once as a parameter to the verifyWithdrawalProofs function, and withdrawalProofs.slot is a value that can determine whether to run the _processFullWithdrawal or _processPartialWithdrawal function.
Consider the fullWithdrawalProof.json given as test data.
Based on the test data above, originally slotRoot/BeaconChainProofs.SLOTS_PER_EPOCH should be greater than validatorFields[BeaconChainProofs.VALIDATOR_WITHHDRAWABLE_EPOCH_INDEX] and the _processFullWithdrawal function should be executed. However, with the ability to manipulate the slotRoot, the _processPartialWithdrawal function can be executed, which means that ETH can be withdrawn immediately without any latency, even if it negatively affects the middleware.
I'm sorry for the lack of explanation, I was just looking for a vulnerability and writing a report while I was nearing the end of my time. If you need a detailed explanation, please call windowhan001 in the eigenlayer contest channel.
Proof of Concept
Tools Used
Manual Audit
Recommended Mitigation Steps
Assessed type
Context