The strategy contract hardcodes the ICurveRouterNG
address without any ability to update it, creating a critical point of failure if the router contract is ever upgraded or migrated.
In _initStrategy()
, the router address is hardcoded:
Key issues:
Router address is immutably set during initialization
No functionality exists to update the router address
Unlimited approval is given to the hardcoded address
No way to revoke approval if router becomes deprecated
If Curve upgrades their router infrastructure:
Strategy's claimAndSwap()
functionality will break
WETH claimed from transmuter cannot be swapped back to alETH
Unlimited approval remains with old router address
Strategy would need complete redeployment to fix
The severity is HIGH because:
Core strategy functionality depends on router working
No mitigation path exists besides redeployment
User funds could become trapped in an unusable state
Manual review
Implement router address management functionality:
This provides:
Controlled router address updates
Time-delayed changes for security
Proper approval management
Long-term strategy maintainability
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.