In the VaultRouterBranch.sol contract, the redeem function
contains a critical vulnerability where a malicious user can frontrun legitimate transactions. This is because the function does not verify that msg.sender
matches the withdrawal request creator stored in vaultRequestIdCounter
. Without this verification, a malicious actor can craft a withdrawal request ID that corresponds to another user's legitimate request and redeem assets belonging to them by passing in there withrawal request id.
As we can see no verification of the caller of redeem function all the malicious user has to do is call the redeem before the honest user using his withdrawal request id and all the user shares will be converted to assets for the malicious users
Unauthorized withdrawal of others assets
Manual audit
Verify the redeem function of msg.sender
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.