Open code423n4 opened 1 year ago
seems expected behavior.
This one seems more suitable for analysis report.
PowVT marked the issue as sponsor acknowledged
PowVT marked the issue as disagree with severity
We definitely acknowledge the consequences here, but we prefer the badges to be transferrable.
I think this comes down to a design choice rather than a high severity issue, will mark as QA.
0xean changed the severity to QA (Quality Assurance)
0xean marked the issue as grade-a
Lines of code
https://github.com/code-423n4/2023-07-arcade/blob/main/contracts/nft/ReputationBadge.sol#L39
Vulnerability details
Impact
Reputation badges can be transferred to others for higher voting power than delegation.
Proof of Concept
According to README.md, reputation NFTs are minted to award users and can be used in governance to give a multiplier to the user's voting power. So it has two functions:
However, a user can transfer his reputation NFTs to others for more voting power than delegation. Here is a PoC:
As shown above, we shouldn't allow reputation transfer as it can be used to tamper voting power and also present wrong reputations.
Tools Used
Manual Review.
Recommended Mitigation Steps
ReputationBadge.sol should override transfer and approve functions in the ERC-1155 contract it inherited.
Assessed type
Governance