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

Array out-of-bounds errors in USDPoolDelegator #39

Open
code423n4 opened this issue Nov 6, 2021 · 0 comments
Open

Array out-of-bounds errors in USDPoolDelegator #39

code423n4 opened this issue Nov 6, 2021 · 0 comments
Labels
1 (Low Risk) Assets are not at risk. State handling, function incorrect as to spec, issues with comments bug Something isn't working sponsor confirmed Sponsor agrees this is a problem and intends to fix it (OK to use w/ "disagree with severity")

Comments

@code423n4
Copy link
Contributor

Handle

pants

Vulnerability details

The functions USDPoolDelegator.balances(), USDPoolDelegator.coins() and USDPoolDelegator.underlying_coins() accept an argument called i and use it as an index to determine which element in the _balances / _coins / _underlying_coins array should be loaded and returned. However, these functions don't check that the index they receive as an argument actually fits the bounds of the array.

Impact

If the index exceeds the array length, there will be a revert with no informative error message. The user wouldn't know what caused the revert.

Tool Used

Manual code review.

Recommended Mitigation Steps

Add an appropriate require statement to each of these functions to validate that the given argument fits the _balances / _coins / _underlying_coins array bounds.

@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 Nov 6, 2021
code423n4 added a commit that referenced this issue Nov 6, 2021
@chickenpie347 chickenpie347 added the sponsor confirmed Sponsor agrees this is a problem and intends to fix it (OK to use w/ "disagree with severity") label Jan 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 (Low Risk) Assets are not at risk. State handling, function incorrect as to spec, issues with comments bug Something isn't working sponsor confirmed Sponsor agrees this is a problem and intends to fix it (OK to use w/ "disagree with severity")
Projects
None yet
Development

No branches or pull requests

2 participants