-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multicall operations can be forcefully reverted #80
Comments
Appreciate the extended attack vector via multicall, nevertheless, it's still caused by permit frontrunning which is OOS. |
MarioPoneder marked the issue as unsatisfactory: |
Hey @MarioPoneder there seems to be some misunderstanding about this report. Can you please have a look again. This report shows how the
Just to restate, this report has nothing to do with the |
Thank you for your comment! I should have been more precise in my first comment. It's not the classical permit-frontrunnig via a Nevertheless, I appreciate this finding and acknowledge it's a valid griefing attack vector. However, due to the limited impacts and missing attack incentives, this would only qualify as QA. Furthermore, the sponsor refers to "Permit based convenience methods front running griefing attack" in the README and those methods are convenience methods and work exactly like a |
Sure @MarioPoneder I got your point and respect your decision. As this report was marked Also can you please mark this as satisfactory and QA. Thanks. |
Lines of code
https://github.com/code-423n4/2024-02-uniswap-foundation/blob/5298812a129f942555466ebaa6ea9a2af4be0ccc/src/UniStaker.sol#L548
Vulnerability details
Note:
Impact
The
UniStaker
contract contains functions for performing operations on behalf of users. In these, the operator of an operation simply signs a message which can be relayed to UniStaker contract and then the intended operation gets performed.This is done for these functions:
stakeOnBehalf
stakeMoreOnBehalf
alterDelegateeOnBehalf
alterBeneficiaryOnBehalf
withdrawOnBehalf
The contract also supports
multicall
by which multiple UniStaker operation can be clubbed together in a single transaction.In case when users or protocol owners want to perform multiple
OnBehalf
calls using a singlemulticall
txn, then this multicall txn can be forcefully reverted by an attacker. The attacker can simply frontrun this txn and execute any one the manymulticall
calls so that original multicall batch reverts.This attack materializes because of two factors
multicall
batch completely reverts if any of its individual call revertsThis attack can be used by an attacker to DOS the use of
OnBehalf
operation withmulticall
. The attacker can succcessfully prevent all those kind of operations indefinitely.Proof of Concept
Tools Used
Foundry
Recommended Mitigation Steps
One solution could be to append an intended
submitter
into the EIP712 signed messages and validate that only that submitter can relay the signed message to UniStaker.Assessed type
Context
The text was updated successfully, but these errors were encountered: