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
HighCentralization Related RisksAcknowledged

In the contract `CallOrder` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and function call with value, function multi-call with value, and function delegate call. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_CallOrder-CallOrder-_owner.svg) ----- In the contract `SelectorRoleControlUpgradeable` the role `_admin` has authority over the functions shown in the diagram below. Any compromise to the `_admin` account may allow the hacker to take advantage of this authority and grant/revoke the selector role and pause/unpause the contract. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_SelectorRoleControlUpgradeable-SelectorRoleControlUpgradeable-_admin.svg) ----- In the contract `SlotOrder` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and set/get the slot. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_SlotOrder-SlotOrder-_owner.svg) ----- In the contract `EcoProxyAdmin` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and upgrade the proxy to implementation and call a function on the new implementation. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_admin-EcoProxyAdmin-_owner.svg) ----- In the contract `ERC1155MintableUpgradeable` the role `_admin` has authority over the functions shown in the diagram below. Any compromise to the `_admin` account may allow the hacker to take advantage of this authority and mint NFTs to any address. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_ERC1155MintableUpgradeable-ERC1155MintableUpgradeable-_admin.svg) ----- In the contract `EcoERC1155URIControl` the role `_admin` has authority over the functions shown in the diagram below. Any compromise to the `_admin` account may allow the hacker to take advantage of this authority and set URI, base URI and initial URI. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_EcoERC1155URIControl-EcoERC1155URIControl-_admin.svg) ----- In the contract `ERC20L2BridgedUpgradeable` the role `_admin` has authority over the functions shown in the diagram below. Any compromise to the `_admin` account may allow the hacker to take advantage of this authority and burn tokens from any address and mint tokens to any address. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_ERC20L2BridgedUpgradeable-ERC20L2BridgedUpgradeable-_admin.svg) ----- In the contract `ERC20MintableUpgradeable` the role `_admin` has authority over the functions shown in the diagram below. Any compromise to the `_admin` account may allow the hacker to take advantage of this authority and mint tokens to any address. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_ERC20MintableUpgradeable-ERC20MintableUpgradeable-_admin.svg) ----- In the contract `ERC721SequencialMintUpbradeable` the role `_admin` has authority over the functions shown in the diagram below. Any compromise to the `_admin` account may allow the hacker to take advantage of this authority and mint NFTs to any address ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_ERC721SequencialMintUpbradeable-ERC721SequencialMintUpbradeable-_admin.svg) ----- In the contract `ERC721TypedUpgradeable` the role `_admin` has authority over the functions shown in the diagram below. Any compromise to the `_admin` account may allow the hacker to take advantage of this authority and set base URI, and token type. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ef-092c-15bc2ec0-a4df-e3084e12c090/diagrams/centralization_ERC721TypedUpgradeable-ERC721TypedUpgradeable-_admin.svg)

HighCentralized Control of Contract UpgradeAcknowledged

In the above contracts, the role `admin` has the authority to update the implementation contract behind the proxy contract. Any compromise to the `admin` account may allow a hacker to take advantage of this authority and change the implementation contract which is pointed by proxy and therefore execute potential malicious functionality in the implementation contract.

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