setPoolImplementation only affects pools deployed after the change is not documented at the call leading to operational confusioncreatePool uses Clones.cloneDeterministic(poolImplementation, salt) to deploy each pool as an EIP-1167 minimal proxy pointed permanently at whatever poolImplementation was at creation time. This is correct and expected clone-factory behavior — updating poolImplementation has no effect on already-deployed pools, since each clone's DELEGATECALL target is baked into its immutable bytecode
The behavior itself is fine; the only gap is that nothing in the natspec or event states this explicitly, so an operator reading PoolImplementationUpdated in isolation (e.g. from a block explorer or monitoring dashboard) could mistakenly believe the update is a live, retroactive upgrade for all existing pools — which would be a reasonable assumption coming from UUPS-style upgradeable systems (which this factory itself uses for its own logic, per UUPSUpgradeable). That mismatch in upgrade model between the factory (upgradeable) and its pools (immutable per-clone) is worth calling out explicitly so operators don't misjudge the blast radius of a bad poolImplementation value — a buggy implementation set via this function only affects pools created going forward, not the ones already live.
Likelihood:
Not exploitable condition, purely a documentation/operational-clarity gap.
Impact:
Informational. Could lead to operator confusion (e.g. believing a hotfix has propagated to existing pools when it hasn't), but has no direct fund-safety or correctness consequence.
Not applicable — this is a documentation gap, not an exploitable code path. Illustrative behavior check:
setPoolImplementation (and ideally on PoolImplementationUpdated) stating that the change applies prospectively only, e.g.:The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.