Parameters are passed on to the constructor of AaveDIVAWrapper in the Wrong Order.
As a result _diva will get the address of _aaveV3Pool and _aaveV3Pool will get the address of _diva.
This will break the whole Aave DIVA Wrapper's functionally or it will not work as expected.
!!!! Note: This is not an admin input validation vulnerability, This vulnerability is present in the actual implementation code of the contract.
On AaveDIVAWrapperCore we can see it is taking the parameters as follows constructor(address diva_, address aaveV3Pool_, address owner_) Ownable(owner_).
But on the constructor of AaveDIVAWrapper we can see it is passing the parameters in the constructor of AaveDIVAWrapperCore as following AaveDIVAWrapperCore(_aaveV3Pool, _diva, _owner)
It is passing the _aaveV3Pool address as _diva's address and _diva's address as _aaveV3Pool's address.
After the deployment, the Aave DIVA Wrapper will get the address of diva and aaveV3Pool totally opposite way.
So, it will break the whole Aave DIVA Wrapper's functionality or it will not work as expected.
Manual review
Pass the parameters in the correct order on AaveDIVAWrapper's constructor.
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.