Ownership transfer is a critical privilege: the owner controls all tokens, Aave positions, recoverTokens, createLeveragedPosition, unwindPosition, and oracle/fee settings.
The current transferOwnership uses a single-step transfer. The new owner is set immediately with no confirmation from the recipient.
A typo, wrong address, or social engineering could result in ownership being transferred to an unintended address.
Likelihood (low):
Requires owner error (typo, copy-paste mistake, or social engineering).
Single-step transfers are a common pattern; accidental transfers are rare but possible.
Impact (high):
If ownership is transferred to an unintended address, the new owner gains full control over the protocol.
The owner can recover all tokens via recoverTokens, unwind positions, and drain funds.
No recovery mechanism exists once the transfer is committed.
Severity (low):
Owner intends to transfer ownership to address 0x1234...abcd but accidentally types 0x1234...abce (wrong last character). The transaction succeeds. The unintended recipient now owns the protocol and can call recoverTokens to drain all aTokens and user collateral.
Implement a two-step ownership transfer (Ownable2Step pattern):
Alternatively, use OpenZeppelin's Ownable2Step if compatible with the upgradeable pattern.
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.