-
Notifications
You must be signed in to change notification settings - Fork 2
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
No slippage protection for ERC20TokenEmitter.buyToken #26
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-397
satisfactory
satisfies C4 submission criteria; eligible for awards
sufficient quality report
This report is of sufficient quality
Comments
c4-bot-3
added
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
labels
Dec 15, 2023
c4-pre-sort
added
the
sufficient quality report
This report is of sufficient quality
label
Dec 21, 2023
raymondfam marked the issue as sufficient quality report |
raymondfam marked the issue as primary issue |
c4-pre-sort
added
the
primary issue
Highest quality submission among a set of duplicates
label
Dec 21, 2023
This was referenced Dec 22, 2023
Closed
c4-pre-sort
added
duplicate-397
and removed
primary issue
Highest quality submission among a set of duplicates
labels
Dec 24, 2023
raymondfam marked the issue as duplicate of #397 |
c4-judge
added
the
satisfactory
satisfies C4 submission criteria; eligible for awards
label
Jan 6, 2024
MarioPoneder marked the issue as satisfactory |
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-397
satisfactory
satisfies C4 submission criteria; eligible for awards
sufficient quality report
This report is of sufficient quality
Lines of code
https://github.com/code-423n4/2023-12-revolutionprotocol/blob/main/packages/revolution/src/ERC20TokenEmitter.sol#L184
Vulnerability details
Proof of Concept
Using
ERC20TokenEmitter.buyToken
function anyone can buy erc20 voting tokens.buyToken
function uses vrgda approach to calculate token's price. The goal of vrgda is to sell fixed amount of tokens per unit of time. Depending on the current sold amount in this unit vrgda can decrease or increase price to attract buyers or vice versa.Because of the described behavior of vrgda it means that price of erc20 token is not stable and changes after each call and time. Thus the function needs slippage protection, so buyer can get at least minimum amount that he is agreed and revert otherwise and not cause loses for the caller.
Impact
No slippage control for the caller.
Tools Used
VsCode
Recommended Mitigation Steps
Add additional param, like
minErc20Amount
, as slippage protection. Also you can add expire check as well.Assessed type
Error
The text was updated successfully, but these errors were encountered: