Venus Prime - SPYBOY's results

Earn, borrow & lend on the #1 Decentralized Money Market on the BNB chain.

General Information

Platform: Code4rena

Start Date: 28/09/2023

Pot Size: $36,500 USDC

Total HM: 5

Participants: 115

Period: 6 days

Judge: 0xDjango

Total Solo HM: 1

Id: 290

League: ETH

Venus Protocol

Findings Distribution

Researcher Performance

Rank: 82/115

Findings: 1

Award: $4.37

QA:
grade-b

🌟 Selected for report: 0

🚀 Solo Findings: 0

Title

Inconsistent State Transition After Burning Prime Tokens

Description

In the prime contract, there is an inconsistency in the state transition of a user's reward index after burning prime tokens. Specifically, when a user burns their prime tokens by calling _burn(), the contract sets the user's rewardIndex for all markets to zero. However, when the same user subsequently claims interest by calling _claimInterest(), the contract resets the rewardIndex to the current market's rewardIndex. This results in an inconsistent state transition.

Here is the sequence of events:

1) User burns prime tokens by calling `_burn()`. 2) `_burn()` sets the user's `rewardIndex` for all markets to zero. 3) Later, the same user calls `_claimInterest()` to claim interest. 4) `_claimInterest()` resets the user's `rewardIndex` to the current market's `rewardIndex`.

The inconsistency arises because, after burning prime tokens, the user's rewardIndex should remain zero until they earn new rewards. However, _claimInterest() incorrectly updates it to the current market's rewardIndex

maybe this issue could be considered as Medium

Impact

This will result in invalid accounting .

#0 - c4-pre-sort

2023-10-07T02:04:39Z

0xRobocop marked the issue as low quality report

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter