Wrong and unexpected parameters passed to constructor in KatanaV3PoolProxy
.
#40
Labels
3 (High Risk)
Assets can be stolen/lost/compromised directly
bug
Something isn't working
duplicate-26
🤖_primary
AI based primary recommendation
sufficient quality report
This report is of sufficient quality
unsatisfactory
does not satisfy C4 submission criteria; not eligible for awards
Lines of code
https://github.com/ronin-chain/katana-v3-contracts/blob/03c80179e04f40d96f06c451ea494bb18f2a58fc/src/core/KatanaV3PoolProxy.sol#L11
Vulnerability details
Description
This
KatanaV3PoolProxy
contract have aconstructor
with parameter asaddress(0)
passed tobeaconProxy
contract which further_setBeacon
with zero address. This address(0) is passed as beacon address tobeaconProxy
and thenbeaconProxy
contract's constructor call_setBeacon
function with address(0) as beacon. This_setBeacon
function has a check which revert this callrequire(Address.isContract(beacon),"BeaconProxy: beacon is not a contract");
.Impact
KatanaV3PoolProxy
contract always revert on deployment, restricted code or dead contract. Because this can never be initialized.Proof of Concepts
address(0) passed from
KatanaV3PoolProxy
contract:constructor() BeaconProxy(address(0), "") { }
BeaconProxy
's Contructor called _setBeacon:_setBeacon
requires checks:Assessed type
Other
The text was updated successfully, but these errors were encountered: