DESIGN.md §10 documents that the sponsor controls recoveryAddress (the CORRUPTED sweep destination) plus the pause / expiry / scope setters.
ConfidencePool is Ownable2Step but does not override the inherited renounceOwnership. Calling it sets the owner to address(0), after which setRecoveryAddress, setExpiry, setPoolScope, pause, and unpause are all permanently uncallable, silently revoking the stated sponsor trust surface.
Likelihood:
Occurs when the pool owner (sponsor) calls renounceOwnership() (accidentally, or as a misguided "decentralization" gesture) with no guard preventing it.
Impact:
recoveryAddress and all owner controls (pause / unpause / expiry / scope) are frozen forever. The stored recoveryAddress still receives CORRUPTED sweeps, but can never be re-pointed if it is later compromised or wrong.
Does not trap staker principal (claims are permissionless), so Low/Info, but it silently removes a documented sponsor guarantee.
Run:
Result:
Override renounceOwnership to revert, since a pool with no owner cannot manage recoveryAddress or the pause controls:
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.
The contest is complete and the rewards are being distributed.