The GMXOracle contract exhibits implicit data type conversion in certain parts of its code. This implicit conversion can lead to unexpected results when manipulating data, as the data types may not align as expected.
One of the examples of implicit data type conversion occurs in the getAmountsIn
function of the GMXOracle contract, where an implicit conversion from uint256
to int256
can potentially result in unexpected results. Below is the vulnerable function:
There is an implicit data type conversion when multiplying getAmountsOut
by (1e18 + 15e14)
to calculate amountsIn
. This can lead to unexpected results as getAmountsOut
returns a uint256
, while the other values in the multiplication are of type int256
.
The implicit data type conversion can lead to unexpected results when performing calculations, potentially affecting the accuracy and reliability of the contract's functions. It may result in erroneous calculations and financial losses.
Manual
To mitigate this vulnerability, it is recommended to handle data type conversions explicitly. Ensure that the data types of variables involved in mathematical operations align correctly to prevent unexpected results.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.