Cube3

Resonance SecurityRepository, no commit named

Resonance Security reviewed Cube3 on 14 Aug 2024: 6 findings, 0 critical; 3 marked fixed, 3 open.

No open critical findings
Open the reportOpen Cube3’s security record
Report stored on IPFS. Content hash QmcWzqdt7v4qfBSFiUMMM8vqsYMSH4ZwbcYtfofSPvWQSX

Trustblock does not review code.

Findings6

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

SeverityOpenAcknowledgedFixed
Critical000
High000
Medium000
Low303
LowFloating Pragma On Core ProtocolFixed

Floating pragmas is a feature of Solidity that allows developers to specify a range of compiler versions that can be used to compile the smart contract code. For security purposes specifically, the usage of floating pragmas is discouraged and not recommended. Contracts should be compiled and deployed with a strict pragma, the one which was thoroughly tested the most by developers. Locking the pragma helps ensure that contracts do not accidentally get deployed using too old or too recent compiler versions that might introduce security issues that impact the contract negatively.It should be noted however that, pragma statements can be allowed to float when a contract is intended for consumption by other developers, as in the case with contracts in a library or EthPM package.The smart contracts of Cube3's core protocol make use of floating pragmas. These are not intended for use as libraries for other developers and, as such, should be locked of their pragma.

LowMissing getIsProtocolPaused() ValidationFixed

The functions transferIntegrationAdmin(), acceptIntegrationAdmin(), updateFunctionProtectionStatus(), and initiateIntegrationRegistration() are capable of modifying the storage of the Router smart contract, yet they do not validate whether the protocol is paused via the function getIsProtocolPaused().

LowRedundant Data Validation Of moduleAddressFixed

The ProtocolManagement contract defines an installModule() function that saves new module's address into the storage. It was observed that it performs a zero-address check that is then followed by ERC165's supportsInterface() verification. Because the ERC165 standard is used, the zero-address check is redundant as the supportsInterface() function will fail if called on the zero-address. Effectively, the zero-address check is performed twice which incurs a higher gas costs.

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.

Part of Cube3’s security record

Cube3
Audits2 audits by 1 firmLast audit Aug 2024, by Resonance Security.
Critical findingsNo open critical findingsAcross 2 reports.
Open Cube3’s security record

Security firm

Resonance Security

18 projects reviewed · 25 reports · latest Aug 2025

See Resonance Security’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