You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 12, 2025. It is now read-only.
DuplicateA valid issue that is a duplicate of an issue with `Has Duplicates` labelMediumA Medium severity issue.RewardA payout will be made for this issue
The process of providing bribes for voting in a pool involves creating a BribeRewarder using RewardFactory, funding it, and registering it through the Voter contract's onRegister function. However, a limit of 5 rewarders per pool creates a vulnerability where attackers could saturate a pool with ineffective BribeRewarders and preventing legitimate participation.
Vulnerability Detail
To provide bribes for voting in a pool, one must use RewardFactory to create a BribeRewarder. After creation, the owner can fund it and execute the bribe logic, registering the BribeRewarder as a rewarder for the pool in the Voter contract through the onRegister function. However, a limitation allows a maximum of 5 BribeRewarders per pool. This could enable an attacker to create 5 BribeRewarders without valuable bribes and register them for a targeted pool. This action prevents legitimate BribeRewarders from registering as a rewarder for the pool, discouraging users from voting for it.
Impact
The attacker can prevent legitimate bribe rewarders from offering bribes for the given pool, effectively discouraging users from voting for it.
sherlock-admin4
changed the title
Blunt Carmine Camel - Denial of Service attack for bribe mechanism
web3pwn - Denial of Service attack for bribe mechanism
Jul 29, 2024
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
DuplicateA valid issue that is a duplicate of an issue with `Has Duplicates` labelMediumA Medium severity issue.RewardA payout will be made for this issue
web3pwn
High
Denial of Service attack for bribe mechanism
Summary
The process of providing bribes for voting in a pool involves creating a
BribeRewarder
usingRewardFactory
, funding it, and registering it through theVoter
contract'sonRegister
function. However, a limit of 5 rewarders per pool creates a vulnerability where attackers could saturate a pool with ineffectiveBribeRewarders
and preventing legitimate participation.Vulnerability Detail
To provide bribes for voting in a pool, one must use
RewardFactory
to create aBribeRewarder
. After creation, the owner can fund it and execute the bribe logic, registering theBribeRewarder
as a rewarder for the pool in theVoter
contract through theonRegister
function. However, a limitation allows a maximum of 5BribeRewarders
per pool. This could enable an attacker to create 5BribeRewarders
without valuable bribes and register them for a targeted pool. This action prevents legitimateBribeRewarders
from registering as a rewarder for the pool, discouraging users from voting for it.Impact
The attacker can prevent legitimate bribe rewarders from offering bribes for the given pool, effectively discouraging users from voting for it.
Code Snippet
Tool used
Manual Review
Recommendation
It is recommended to redesign the logic in a way it will be not possible to prevent legitimate bribers from participating.
Duplicate of #190
The text was updated successfully, but these errors were encountered: