Normal Behavior: The deposit() function allows a user to deposit assets on behalf of a specified receiver address. The intended behavior is to mint vault shares to the receiver, not necessarily the sender.
Specific Issue: In the current implementation, _mint() always mints shares to msg.sender instead of the receiver. This means that the depositor may pay tokens, but another address (the sender) receives the vault shares, breaking the intended ownership mapping.
Likelihood:
Likely whenever a depositor intends to deposit for another user by specifying the receiver parameter.
High likelihood because _mint() ignores the receiver argument and always uses msg.sender.
Impact:
The depositor pays the assets, but shares are assigned to the wrong address, potentially leading to loss of funds or misallocation of vault shares.
Could be exploited in scenarios where contracts or users deposit on behalf of another, breaking intended reward distribution.
Additional Recommendations:
Ensure that all relevant events (like deposited) match the actual share ownership (receiver).
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.