Skip to content

Latest commit

 

History

History
38 lines (20 loc) · 1.44 KB

File metadata and controls

38 lines (20 loc) · 1.44 KB

Calm Fiery Llama

High

Unclaimed mock profiles are unable to claim rewards, causing vouchers to pay donation fees for no benefit

Summary

The check in EthosVouch.sol will prevent mock profiles from claiming their rewards. Therefore, vouchers will pay donation fees for nothing and the funds will be stuck in the contract.

Root Cause

In EthosVouch.sol:673, a check ensures that mock profiles cannot claim their rewards, even though the protocol explicitly allows vouches for mocks.

Internal pre-conditions

  1. entryDonationFeeBasisPoints needs to be greater than 0.

External pre-conditions

None.

Attack Path

  1. A user calls EthosVouch::vouchByAddress() or EthosVouch::vouchByProfileId() to vouch for a mock profile. The caller pays a donation fee, which should later be claimable by the mock.
  2. The mock profile calls EthosVouch::claimRewards() to claim their rewards, but the call reverts.

Impact

Mock profiles cannot claim their rewards, and the funds will be stuck in the contract. Furthermore, vouchers will pay a donation fee for nothing if they vouch for a mock profile, essentially donating the funds to the contract.

PoC

No response

Mitigation

Consider allowing mock profiles to call EthosVouch::claimRewards() to claim their rewards.