Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

getRemainingRewards might fail unexpectedly #117

Closed
code423n4 opened this issue Dec 12, 2021 · 2 comments
Closed

getRemainingRewards might fail unexpectedly #117

code423n4 opened this issue Dec 12, 2021 · 2 comments
Assignees
Labels
2 (Med Risk) Assets not at direct risk, but function/availability of the protocol could be impacted or leak value bug Something isn't working duplicate This issue or pull request already exists

Comments

@code423n4
Copy link
Contributor

Handle

certora

Vulnerability details

getRemainingRewards might fail unexpectedly.
getRemainingRewards calls _getRemainingRewards which calls _getCurrentEpochId:

function _getCurrentEpochId(Promotion memory _promotion) internal  view  returns (uint256) {
    // elapsedTimestamp / epochDurationTimestamp
    return (block.timestamp - _promotion.startTimestamp) / _promotion.epochDuration;
}

If block.timestamp < _promotion.startTimestamp, it will revert due to underflow.

Impact

any external call to getRemainingRewards will revert if the promotion is not started yet.

Recommended Mitigation Steps

check in _getRemainingRewards if the promotion started yet, if it didn't then return the entire amount.

@code423n4 code423n4 added 1 (Low Risk) Assets are not at risk. State handling, function incorrect as to spec, issues with comments bug Something isn't working labels Dec 12, 2021
code423n4 added a commit that referenced this issue Dec 12, 2021
@PierrickGT
Copy link
Member

Duplicate of #102

@PierrickGT PierrickGT marked this as a duplicate of #102 Dec 13, 2021
@PierrickGT PierrickGT self-assigned this Dec 13, 2021
@PierrickGT PierrickGT added the duplicate This issue or pull request already exists label Dec 13, 2021
@dmvt dmvt added 2 (Med Risk) Assets not at direct risk, but function/availability of the protocol could be impacted or leak value and removed 1 (Low Risk) Assets are not at risk. State handling, function incorrect as to spec, issues with comments labels Jan 17, 2022
@dmvt
Copy link
Collaborator

dmvt commented Jan 17, 2022

Duplicate of #101

@dmvt dmvt marked this as a duplicate of #101 Jan 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2 (Med Risk) Assets not at direct risk, but function/availability of the protocol could be impacted or leak value bug Something isn't working duplicate This issue or pull request already exists
Projects
None yet
Development

No branches or pull requests

3 participants