Calm Fiery Llama
Medium
Users can vouch for a short period of time to grief other users and steal the vouchersPoolFee
of every call to add or increase a vouch during that period
A missing check to reward only vouches that have been active for a specific amount of time will cause users to lose their rightful share of the vouchersPoolFee
, as any user can vouch for only a short period of time as soon as they get information about when a vouch is going to be added. Therefore, users can steal the vouchersPoolFee
applied to any call to EthosVouch::vouchByAddress()
, EthosVouch::vouchByProfileId()
or EthosVouch::increaseVouch()
.
In EthosVouch.sol:721
every vouch that is currently active for the same subject, regardless of how long it has been active, receives a share of the vouchersPoolFee
.
entryVouchersPoolFeeBasisPoints
must be greater than0
.
None.
- Alice receives information about when Bob wants to vouch.
- Alice calls
EthosVouch::vouchByAddress()
to vouch for that address. - Bob calls
EthosVouch::vouchByAddress()
to add his vouch. - Alice steals a share of the
vouchersPoolFee
from other users even though she has only vouched for a brief period of time. - Alice calls
EthosVouch::unvouch()
to remove her vouch.
Users who vouched for the same subject could lose a significant portion of their deserved share of the vouchersPoolFee
every time the reward is distributed. Even though this might not be profitable for the users stealing the funds, they will still cause other non-malicious users to lose funds.
No response
Consider adding a threshold for how long a user must be vouched for in order to receive a share of the vouchersPoolFee
.