Smart Contract Vulnerability Coverage

Assertions and Property Checking

DETECTOR

ANALYSIS TYPE

SWC-ID

Solidity assert violation

Symbolic analysis, fuzzing (bytecode)

MythX assertion violation (AssertionFailed event)

Symbolic analysis, fuzzing (bytecode)

Byte-code Safety

DETECTOR

ANALYSIS TYPE

SWC-ID

Integer overflow in arithmetic operation

Symbolic analysis, fuzzing (bytecode)

Integer underflow in arithmetic operation

Symbolic analysis, fuzzing (bytecode)

Caller can redirect execution to arbitrary locations

Symbolic analysis, fuzzing (bytecode)

Caller can write to arbitrary storage locations

Symbolic analysis, fuzzing (bytecode)

Dangerous use of uninitialized storage variables

Solidity code analysis

Authorization Controls

DETECTOR

ANALYSIS TYPE

SWC-ID

Any sender can withdraw ETH from the contract account

Symbolic analysis, fuzzing (bytecode)

Any sender can trigger SELFDESTRUCT

Symbolic analysis, fuzzing (bytecode)

Use of "tx.origin" as a part of authorization control

Solidity code analysis

Control Flow

DETECTOR

ANALYSIS TYPE

SWC-ID

Delegatecall to a user-supplied address

Symbolic analysis (bytecode)

Call to a user-supplied address

Symbolic analysis (bytecode)

Unchecked return value from external call

Solidity code analysis

Block timestamp influences a control flow decision

Taint analysis (bytecode)

Environment variables influence a control flow decisions

Taint analysis (bytecode)

Loop over unbounded data structure

Solidity code analysis

Implicit loop over unbounded data structure

Solidity code analysis

Usage of "continue" in "do-while"

Solidity code analysis

N/A

Multiple calls are executed in the same transaction

Static analysis (bytecode)

Persistent state read following external call

Static analysis, fuzzing (bytecode)

Persistent state write following external call

Static analysis, fuzzing (bytecode)

Account state accessed after call to user-defined address

Symbolic analysis (bytecode)

Return value of an external call is not checked

Static analysis (bytecode)

Potential weak source of randonmness

Solidity code analysis

Requirement violation

Fuzzing (bytecode)

Call with hardcoded gas amount

Solidity code analysis

ERC Standards

DETECTOR

ANALYSIS TYPE

SWC-ID

Incorrect ERC20 implementation

Solidity code analysis

N/A

Control Flow

DETECTOR

ANALYSIS TYPE

SWC-ID

Outdated compiler version

Solidity code analysis

No or floating compiler version set

Solidity code analysis

Use of right-to-left-override control character

Solidity code analysis

Shadowing of built-in symbol

Solidity code analysis

Incorrect constructor name

Solidity code analysis

State variable shadows another state variable

Solidity code analysis

Local variable shadows a state variable

Solidity code analysis

Function parameter shadows a state variable

Solidity code analysis

Named return value shadows a state variable

Solidity code analysis

Unary operation without effect

Solidity code analysis

Unary operation directly after assignment

Solidity code analysis

Unused state variable

Solidity code analysis

Unused local variable

Solidity code analysis

Function visibility is not set

Solidity code analysis

State variable visibility is not set

Solidity code analysis

Use of deprecated functions: callcode(), sha3(), ...

Solidity code analysis

Use of deprecated global variables (msg.gas, ...)

Solidity code analysis

Use of deprecated keywords (throw, var)

Solidity code analysis

Incorrect function state mutability

Solidity code analysis

N/A