Spectrum Protocol - Audit(Addendum)

CertiKFiles named in the report

CertiK reviewed Kroma (Spectrum Protocol - Audit(Addendum)) on 13 May 2024: 18 findings, 0 critical; 3 marked fixed, 2 acknowledged, 13 open.

No open critical findings
Open the reportOpen Kroma’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings18

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High020
Medium101
Low1202
MediumMissing Check for whether `asset` is a support AsFixed

In the `stake()` and `unstake()` functions, there is no check to ensure that the asset is a supported asset. As a result, a user can stake any asset for the first time (`spTotalSupply == 0`) and receive the `spETH` token. However, if another user attempts to stake with the correct asset, the `stake()` function will revert due to a division by zero error because the contract's asset balance is zero. ```solidity =166 function _getSpectrumFromAsset( SnapGlobal memory gSnap, address asset, uint256 assetAmount ) internal view returns (uint256 spAmount) { CoreSupportAssetInfo memory assetInfo = _getSpectrumCoreStorage().assetInfos[asset]; uint256 spTotalSupply = gSnap.info.spETH.totalSupply(); if (spTotalSupply == 0) return assetAmount; spAmount = (spTotalSupply * _switchAssetEval(assetInfo.id)(assetInfo.assetEvaluator, assetAmount)) / gSnap.spSnap.evalValue; } ```

LowMissing Check to verify whether the asset existFixed

The function `updateCoreSupportAsset()` updates asset info, but there is no check to ensure the asset exists. Therefore, if the asset does not exist, it is not added to the `supportAssets`, leading to inconsistency.

LowReceived ETH will be lockedFixed

The contract `SpectrumCoreEntry` has a `receive()` function to receive ETH, but there is no function to withdraw them. Thus, every ETH sent to the contract will be lost.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (41)

  • contracts/token/ERC20/EcoERC4626Upgradeable.sol
  • contracts/token/NFT/NFT_Typed.sol
  • contracts/ERC165.sol
  • contracts/proxy/transparent.sol
  • contracts/token/NFT/NFT_Mintable.sol
  • contracts/spectrum/hub/SpectrumHubUtils.sol
  • contracts/access/CallOrder.sol
  • contracts/token/ERC721/ERC721PausableUpgradeable.sol
  • contracts/token/ERC1155/EcoERC1155URIControl.sol
  • contracts/token/NFT/SBT.sol
  • contracts/token/ERC20/ERC20MintableUpgradeable.sol
  • contracts/spectrum/hub/SpectrumHubLogic.sol
  • contracts/proxy/admin.sol
  • contracts/token/ERC20/ERC20RebasedUpgradeable.sol
  • contracts/types.sol
  • contracts/access/SelectorRoleControlUpgradeable.sol
  • contracts/token/ERC1155/EcoERC1155Upgradeable.sol
  • contracts/spectrum/core/SpectrumCoreLogic.sol
  • contracts/spectrum/core/SpectrumCoreUtils.sol
  • contracts/token/ERC721/ERC721SoulBoundUpgradeable.sol
  • contracts/access/EcoOwnable.sol
  • contracts/token/ERC20/ERC20L2BridgedUpgradeable.sol
  • contracts/token/ERC20/WETH.sol
  • contracts/spectrum/core/SpectrumCoreEntry.sol
  • contracts/token/ERC721/ERC721SequencialMintUpbradeable.sol
  • contracts/spectrum/hub/SpectrumHubState.sol
  • contracts/spectrum/hub/SpectrumHubEntry.sol
  • contracts/token/ERC20/EcoERC20Upgradeable.sol
  • contracts/spectrum/core/SpectrumCore.sol
  • contracts/token/ERC721/ERC721QueryableUpgradeable.sol
  • contracts/token/ERC20/EcoERC20Rebased.sol
  • contracts/rate.sol
  • contracts/token/ERC1155/ERC1155MintableUpgradeable.sol
  • contracts/spectrum/hub/SpectrumHub.sol
  • contracts/access/SlotOrder.sol
  • contracts/utils/BasisPointRateMath.sol
  • contracts/spectrum/core/SpectrumCoreState.sol
  • contracts/token/ERC721/ERC721TypedUpgradeable.sol
  • contracts/spectrum/SpectrumETH.sol
  • contracts/token/ERC20/ERC20MetadataUpgradeable.sol
  • contracts/token/ERC1155/ERC1155PausableUpgradeable.sol

Part of Kroma’s security record

Kroma
Audits3 audits by 1 firmLast audit Dec 2024, by CertiK.
Critical findingsNo open critical findingsAcross 3 reports.
Open Kroma’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’s audits

Something 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