The _updateWeightRunner
address in QuantAMMWeightedPoolFactory
is marked as immutable and can't be changed by setter function, preventing newly created pools from using upgraded versions of the UpdateWeightRunner
contract in case of required hotfixes or improvements.
This creates a scenario where:
Protocol team deploys new UpdateWeightRunner
with security fixes
But new pools are still created with reference to old UpdateWeightRunner
Prevents protocol upgrades for new pools
Forces deployment of new factory contracts for upgrades
Could leave new pools vulnerable to known issues
Manual code review
Remove immutable keyword and implement upgradeable pattern:
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.