CertiK reviewed Kroma (Spectrum Protocol - Audit) on 3 Apr 2024: 16 findings, 0 critical; 10 marked fixed, 4 acknowledged, 2 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 | 2 | 0 |
| Medium | 0 | 2 | 3 |
| Low | 2 | 0 | 7 |
- Contract ·`ERC20MetadataUpgradeable`· extends `ERC20Upgradeable` - contract `EcoERC20Upgradeable`· extends `ERC20PermitUpgradeable` - contract `ERC20MintableUpgradeable`· extends `ERC20Upgradeable` and `ERC20BurnableUpgradeable` - contract `WETH`· extends `ERC20BurnableUpgradeable` - contract `EcoOwnable` extends `Ownable2StepUpgradeable` - contract `SelectorRoleControlUpgradeable` extends `PausableUpgradeable` and `AccessControlEnumerableUpgradeable` - contract `EcoProxyAdmin` extends `MulticallUpgradeable` but these extended contracts are not initialized by the current contracts. Generally, the initializer function of a contract should always call all the initializer functions of the contracts that they extends.
In the functions `_fundReceiveFrom()` and `_stakeReceiveFrom()`, there is no check to ensure that the value retrieved from `$.underlyingToIdx[$.info.fundUnderlying]` exists in the `$.idxAssetList`. This could result in the use of the incorrect `idxAsset` and `idxAmount`, leading to the receipt of incorrect amounts of tokens. ```solidity=211 function _fundReceiveFrom( address requestedAsset, address from, uint256 amount ) internal returns (address idxAsset, uint256 idxAmount) { SpectrumCoreStorage storage $ = _getSpectrumCoreStorage(); if (requestedAsset != $.info.fundUnderlying) revert Spectrum(SpectrumErrors.InValidFund); if (from != _msgSender()) revert Spectrum(SpectrumErrors.InValidFrom); idxAmount = IstETH(payable(requestedAsset)).submit{ value: amount }(address(0)); idxAsset = $.underlyingToIdx[requestedAsset]; IEcoERC20(requestedAsset).safeIncreaseAllowance(idxAsset, idxAmount); idxAmount = IidxAssetWrapper(idxAsset).wrap(idxAmount); } ```
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (18)
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