Missing input validation on array lengths (PayMath.sol) #137
Labels
1 (Low Risk)
Assets are not at risk. State handling, function incorrect as to spec, issues with comments
bug
Something isn't working
resolved
Finding has been patched by sponsor (sponsor pls link to PR containing fix)
sponsor confirmed
Sponsor agrees this is a problem and intends to fix it (OK to use w/ "disagree with severity")
Handle
ye0lde
Vulnerability details
Impact
The function below fails to perform input validation on arrays to verify the lengths match.
A mismatch could lead to an exception or undefined behavior.
Proof of Concept
ids
,assetsIn
(copied into frommaxAssetsIn
on line 18)https://github.com/code-423n4/2022-01-timeswap/blob/bf50d2a8bb93a5571f35f96bd74af54d9c92a210/Timeswap/Timeswap-V1-Convenience/contracts/libraries/PayMath.sol#L15-L28
While
givenMaxAssetsIn
is an internal function if you trace the code back the parameters are passed in by an external function (pay
orpayEthAsset
orpayEthCollateral
) with no array length validation.Tools Used
Visual Studio Code, Remix
Recommended Mitigation Steps
Add input validation to check that the length of all arrays match (
ids
,maxAssetsIn
).The text was updated successfully, but these errors were encountered: