Currently, many core operations (like NestedFactory.create(), NestedFactory.swapTokenForTokens()) are dependent on the assumption that the cache is synced before these functions are executed however this may not necessarily be the case.
Proof of Concept
OperatorResolver.importOperators() is called to remove an operator.
A user calls NestedFactory.create() that uses the operator that was being removed / updated.
NestedFactory.rebuildCache() is called to rebuild cache.
This flow is not aware that the cache is not in synced.
Recommended Mitigation Steps
Add a modifier to require that the cache is synced to all functions that interact with the operators.
Handle
GreyArt
Vulnerability details
Impact
Currently, many core operations (like NestedFactory.create(), NestedFactory.swapTokenForTokens()) are dependent on the assumption that the cache is synced before these functions are executed however this may not necessarily be the case.
Proof of Concept
This flow is not aware that the cache is not in synced.
Recommended Mitigation Steps
Add a modifier to require that the cache is synced to all functions that interact with the operators.