Data desynchronization
Description
When creating a market, the user can set the address of the callback
contract that will process transfers of the owner's tokens. To do this, the user should be whitelisted, but deploying the callback
contract is not under control by project contract. Therefore, it is not guaranteed that the user will specify the same address of _aggregator
contract as the BondBaseTeller
contract. As a result, there may be a desynchronization of the market data used to process the token transfer.
Impact
As a result of a user error, the market may be unusable since it is impossible to edit the corresponding market settings after creation.
Recommendations
For the expected operation of the BondBaseCallback
contract independent of user actions, we recommend directly passing the payoutToken
and quoteToken
token addresses to the callback
function.
Remediation
Bond Labs acknowledged this finding and implemented a fix in commit 252f64d8↗.