The strategy contracts inherit from the BaseStrategy, which functions as a base implementation to seamlessly integrate with the TokenStrategyimplementation. it utilizes an immutable proxy pattern that allows the BaseStrategy to remain simple and small. All standard logic is held within theTokenizedStrategy and is reused over any n strategies all using the fallback function to delegatecall the implementation so that strategists can only be concerned with writing their strategy-specific code.
However the function initialize is not called in the constructor of the strategies.
this causes critical state variables used internally by the TokenizedStrategyto be left uninitialized (like S.asset, S.name, etc.).
these uninitialized variables cause functions that depend on them not to behave properly and create the avenue for frontrunning the initialized function.
TokenizedStrategystate variables that are not initialized can temporarily DOS the strategy, opening up the avenue for frontrunning the function initilize.
Manual Review
initialize the TokenizedStrategyin the strategy constructor.
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.