CyberConnect

CertiKFiles named in the report

CertiK reviewed Cyber (CyberConnect) on 9 Sep 2022: 18 findings, 0 critical; 15 marked fixed, 3 open.

No open critical findings
Open the reportOpen Cyber’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
High200
Medium002
Low1013
HighCentralization RisksOpen

In the contract `Link3ProfileDescriptor` 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 new animation templates. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_Link3ProfileDescriptor-Link3ProfileDescriptor-owner.svg) --- In the contract `CyberBoxNFT` 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 pause/unpause the contract and set a new signer. The new signer can then call `claimBox()` and mint as many boxes as they want. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_CyberBoxNFT-CyberBoxNFT-owner.svg) --- In the contract `Treasury` 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 change the treasuryAddress to one they control or alter the value set for the treasury fee. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_Treasury-Treasury-owner.svg) --- In the contract `PermissionedFeeCreationMw` the role `ENGINE` has authority over the functions shown in the diagram below. Any compromise to the `ENGINE` account may allow the hacker to take advantage of this authority and change the recipient address, the signer address, and all the values for the different fee tiers for a given namespace. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_PermissionedFeeCreationMw-PermissionedFeeCreationMw-ENGINE.svg) --- In the contract `Owned` 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 new malicious address as the owner of the contract. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_Owned-Owned-owner.svg) --- In the contract `Auth` 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 change the `Authority`. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_Auth-Auth-owner.svg) --- In the contract `ProfileNFT` the role `_namespaceOwner` has authority over the functions shown in the diagram below. Any compromise to the `_namespaceOwner` account may allow the hacker to take advantage of this authority and change the `NFTDescriptor` for the current profile, change the namespace owner, and pause/unpause the state of the contract. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_ProfileNFT-ProfileNFT-_namespaceOwner.svg) In the contract `ProfileNFT` the modifier `onlyProfileOwner()` gives authority over the function setOperatorApproval(). Any compromise to the profile owner account may allow the hacker to take advantage of this authority and set malicious address as operators for a certain profile. In the contract `ProfileNFT` the modifier `onlyProfileOwnerOrOperator()` gives authority on different functions including: - `registerEssence()` - `setSubscribeData()` - `setEssenceData()` Any compromise to the profile owner or operator account may allow the hacker to take advantage of this authority and register new essences, change the essence/subscribe middleware, and change essences' token URIs. --- In the contract `EssenceNFT` the role `PROFILE` has authority over the functions shown in the diagram below. Any compromise to the `PROFILE` account may allow the hacker to take advantage of this authority and mint new essences for a given profile. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_EssenceNFT-EssenceNFT-PROFILE.svg) --- In the contract `CyberEngine` the role `_namespaceOwner` has authority over the functions shown in the diagram below. Any compromise to the `_namespaceOwner` account may allow the hacker to take advantage of this authority and change the profile middleware for a given namespace to a malicious one. ![](https://accelerator-tasks-prod.acc.corp.certik.com/421a63d06a5b4dba8bed3ec54993c7f0/diagrams/centralization_CyberEngine-CyberEngine-_namespaceOwner.svg)

HighCentralized Control of Contract UpgradeOpen

`CyberEngine.sol`, `EssenceNFT.sol`, `ProfileNFT.sol`, `SubscribeNFT.sol`, `CyberBoxNFT.sol` and `Link3ProfileDescriptor.sol` are upgradeable contracts, authorized accounts can upgrade these contracts without the community's commitment. If an attacker compromises the account, they can change the implementation of the contract and drain tokens from the contract.

LowMultiple Functions Use Same NonceOpen

The functions `permit()`, `subscribeWithSig()`, `collectWithSig()`, `registerEssenceWithSig()`, `setAvatarWithSig()`, `setOperatorApprovalWithSig()`, `setMetadataWithSig()`, `setSubscribeDataWithSig()`, `setEssenceDataWithSig()`, and `setPrimaryProfileWithSig()` all use the same `nonces` mapping. It may be possible for a user to provide multiple signatures before a function is executed so that they all use the same nonce. This will only allow one of the functions to be called as all the remaining signatures will become invalid when the nonce is incremented.

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 (56)

  • src/middlewares/subscribe/SubscribeOnlyOnceMw.sol
  • src/core/EssenceNFT.sol
  • src/interfaces/IProfileDeployer.sol
  • src/middlewares/base/PermissionedMw.sol
  • src/middlewares/essence/CollectOnlySubscribedMw.sol
  • src/middlewares/profile/PermissionedFeeCreationMw.sol
  • src/libraries/Actions.sol
  • src/libraries/DataTypes.sol
  • src/interfaces/IProfileMiddleware.sol
  • src/interfaces/IEssenceDeployer.sol
  • src/libraries/QRSVG.sol
  • src/interfaces/ICyberEngineEvents.sol
  • src/interfaces/IProfileNFTDescriptor.sol
  • src/dependencies/solmate/Auth.sol
  • src/storages/EssenceNFTStorage.sol
  • src/storages/CyberBoxNFTStorage.sol
  • src/interfaces/ISubscribeMiddleware.sol
  • src/dependencies/solmate/Owned.sol
  • src/dependencies/openzeppelin/ReentrancyGuard.sol
  • src/storages/Link3ProfileDescriptorStorage.sol
  • src/dependencies/openzeppelin/Pausable.sol
  • src/core/SubscribeNFT.sol
  • src/periphery/Link3ProfileDescriptor.sol
  • src/interfaces/IEssenceNFT.sol
  • src/base/CyberNFTBase.sol
  • src/deployer/EssenceDeployer.sol
  • src/core/CyberEngine.sol
  • src/interfaces/ICyberNFTBase.sol
  • src/libraries/Constants.sol
  • src/interfaces/ITreasury.sol
  • src/interfaces/ISubscribeDeployer.sol
  • src/interfaces/IProfileNFTEvents.sol
  • src/interfaces/ICyberEngine.sol
  • src/storages/SubscribeNFTStorage.sol
  • src/periphery/CyberBoxNFT.sol
  • src/interfaces/IUpgradeable.sol
  • src/interfaces/IEssenceNFTEvents.sol
  • src/storages/ProfileNFTStorage.sol
  • src/core/ProfileNFT.sol
  • src/libraries/LibString.sol
  • src/interfaces/IEssenceMiddleware.sol
  • src/upgradeability/UpgradeableBeacon.sol
  • src/deployer/SubscribeDeployer.sol
  • src/deployer/ProfileDeployer.sol
  • src/base/EIP712.sol
  • src/middlewares/base/FeeMw.sol
  • src/storages/CyberEngineStorage.sol
  • src/dependencies/solmate/RolesAuthority.sol
  • src/upgradeability/Initializable.sol
  • src/middlewares/base/Treasury.sol
  • src/interfaces/ISubscribeNFTEvents.sol
  • src/interfaces/ICyberBox.sol
  • src/interfaces/ICyberBoxEvents.sol
  • src/interfaces/ISubscribeNFT.sol
  • src/dependencies/solmate/ERC721.sol
  • src/interfaces/IProfileNFT.sol

Part of Cyber’s security record

Cyber
Audits7 audits by 2 firmsLast audit Aug 2024, by HashEx.
Critical findingsNo open critical findingsAcross 7 reports.
Open Cyber’s security record

Security firm

CertiK

1,045 projects reviewed · 1,376 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