CertiK reviewed ParaSpace Lending V1 (ParaSpace (Audit #3)) on 23 Dec 2022: 15 findings, 0 critical; 4 marked fixed, 1 acknowledged, 10 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 1 | 1 |
| Medium | 0 | 0 | 1 |
| Low | 10 | 0 | 2 |
In the contract `ACLManager`, the role `DEFAULT_ADMIN_ROLE` has authority over the following functions: - function setRoleAdmin(), to set the role as admin of a specific role. Any compromise to the `DEFAULT_ADMIN_ROLE` account may allow a hacker to take advantage of this authority. In the contract `PoolAddressesProvider`, the role `Owner` has authority over the following functions: - function setMarketId(), to associate an id with a specific PoolAddressesProvider. - function setAddress(), to set an address for an id replacing the address saved in the addresses map. - function setAddressAsProxy(), to update the implementation of a proxy registered with a certain `id`. If there is no proxy registered, it will instantiate one and set as implementation the `newImplementationAddress`. - function setPoolImpl(), to update the implementation of the Pool or creates a proxy setting for the new `pool` implementation when the function is called for the first time. - function setPriceOracle(), to update the address of the price oracle. - function setACLManager(), to update the address of the ACL manager. - function setACLAdmin(), to update the address of the ACL admin. - function setPriceOracleSentinel(), to update the address of the price oracle sentinel. - function setPoolDataProvider(), to update the address of the data provider. - function setWETH(), to update the address of the WETH. - function setMarketplace(), to update the info of the marketplace. Any compromise to the `Owner` account may allow a hacker to take advantage of this authority. In the contract `PoolAddressesProviderRegistry`, the role `Owner` has authority over the following functions: - function registerAddressesProvider(), to register an addresses provider. - function unregisterAddressesProvider(), to remove an addresses provider from the list of registered addresses providers. Any compromise to the `Owner` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyPoolAdmin` has authority over the following functions: - function dropReserve(), to drop a reserve entirely. - function updatePToken(), to update the PToken implementation for the reserve. - function updateStableDebtToken(), to update the stable debt token implementation for the reserve. - function updateVariableDebtToken(), to update the variable debt token implementation for the asset. - function setReserveActive(), to activate or deactivate a reserve. Any compromise to the `onlyPoolAdmin` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyRiskOrPoolAdmins` has authority over the following functions: - function setReserveBorrowing(), to configure borrowing on a reserve. - function configureReserveAsCollateral(), to configure the reserve collateralization parameters. - function configureReserveAsAuctionCollateral(), to configure the reserve collateralization parameters. - function setReserveStableRateBorrowing(), to enable or disable stable rate borrowing on a reserve. - function setReserveFreeze(), to freeze or unfreeze a reserve. A frozen reserve doesn't allow any new supply, borrow, or rate swap but allows repayments, liquidations, rate rebalances, and withdrawals. - function setReserveFactor(), to update the reserve factor of a reserve. - function setSiloedBorrowing(), to set siloed borrowing for an asset. - function setBorrowCap(), to update the borrowing cap of a reserve. - function setSupplyCap(), to update the supply cap of a reserve. - function setLiquidationProtocolFee(), to update the liquidation protocol fee of the reserve. - function setReserveInterestRateStrategyAddress(), to set the interest rate strategy of a reserve. Any compromise to the `onlyRiskOrPoolAdmins` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyEmergencyOrPoolAdmin` has authority over the following functions: - function setReservePause(), to pause a reserve. A paused reserve does not allow any interaction (supply, borrow, repay, * swap interest rate, liquidate, NToken/PToken transfers). Any compromise to the `onlyEmergencyOrPoolAdmin` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyEmergencyAdmin` has authority over the following functions: - function setPoolPause(), to pause or unpause all the protocol reserves. In the paused state all the protocol interactions are suspended. Any compromise to the `onlyEmergencyAdmin` account may allow a hacker to take advantage of this authority. In the contract `PoolConfigurator`, the role `onlyAssetListingOrPoolAdmins` has authority over the following functions: - function initReserves(), to initialize multiple reserves. Any compromise to the `onlyAssetListingOrPoolAdmins` account may allow a hacker to take advantage of this authority. In the contract `PoolParameters`, th
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (45)
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us