Shentu Security Oracle

CertiKFiles named in the report

CertiK reviewed Shentu Chain (Shentu Security Oracle) on 12 Oct 2020: 14 findings, 0 critical; 12 marked fixed, 2 open.

No open critical findings
Open the reportOpen Shentu Chain’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings14

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

SeverityOpenAcknowledgedFixed
Critical000
High000
Medium000
Low2012
Low`struct` OptimizationFixed

Each struct packs its members in 256-bit chunks. The Result struct contains the score (uint8) and the expiration (uint256) members, thus reserving two 256-bit chunks in storage.

LowCheck Against the Zero AddressFixed

The linked functions should check the value of their respective `contractAddress` parameter.

LowDifferent Compiler VersionsFixed

If the compiler version is above `0.6.0`, then the contract raises a compilation error due to the `fallback()` function in the Proxy.sol file.

LowDifferent Compiler VersionsFixed

If the compiler version is between `0.4.21` and `0.4.26`, then the contract raises a compilation error due to the keyword `payable` .

LowDifferent Compiler VersionsFixed

If the compiler version is between `0.4.21` and `0.4.26`, then the contract raises a compilation error.

LowMalicious Hash CollisionFixed

Since an empty `bytes4` variable, i.e. 0, points to the default score of a contract, it is possible to have the same score applied to a function of the contract as well. The "identifier" of a contract is simply the first 4 bytes of the `keccak256` hash of the signature, meaning that an attacker would simply need to generate a function signature that results in a `keccak256` hash with 4 leading zeroes which is not an impossible achievement.

LowUncommon Naming ConventionFixed

The linked variable is prefixed with an underscore yet is declared as public .

LowUncommon Naming ConventionFixed

The linked variable is prefixed with an underscore yet is declared as public.

LowUnlocked Compiler VersionFixed

An unlocked compiler version in the source code of the contract permits the user to compile it at or above a particular version. This, in turn, leads to differences in the generated bytecode between compilations due to differing compiler version numbers.This can lead to an ambiguity when debugging as compiler specific bugs may occur in the codebase that would be hard to identify over a span of multiple compiler versions rather than a specific one.

LowUnlocked Compiler VersionFixed

If the compiler version is between `0.4.21` and `0.4.26`, then the contract raises a compilation error due to the keyword `payable`.

Show 2 more
LowUnlocked Compiler VersionsFixed

An unlocked compiler version in the source code of the contract permits the user to compile it at or above a particular version. This, in turn, leads to differences in the generated bytecode between compilations due to differing compiler version numbers. This can lead to an ambiguity when debugging as compiler specific bugs may occur in the codebase that would be hard to identify over a span of multiple compiler versions rather than a specific one.

LowUse of `memory` Over `storage`Fixed

The linked variable is redundantly stored in `storage` , as `storage` look-ups make the gas price higher.

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

  • Proxy.sol
  • Ownable.sol
  • Context.sol

Part of Shentu Chain’s security record

Shentu Chain
Audits5 audits by 1 firmLast audit Dec 2024, by CertiK.
Critical findingsNo open critical findingsAcross the 5 reports, 1 critical finding was reported. It is marked fixed by the firm that reported it.
Open Shentu Chain’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