The supply() and withdraw() functions in contract IAave.sol modify user balances but do not emit events. In Solidity best practices, functions that change balances should emit events to improve traceability and security.
Lack of emitted events makes it harder for off-chain services to track deposits and withdrawals.
Security monitoring tools rely on events to detect anomalies.
Debugging and auditing are more difficult.
Proof of Concept (PoC)
While this issue is in an interface, any contract implementing IAave must manually emit events. Consider the following example of a possible vulnerable implementation:
Mitigation
Update the interface to include event declarations:
Then, implementations must emit these events:
Manual code review
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.