AuditBase
Sign InGet Started

200+ vulnerability detectors

Explore our full library of smart contract vulnerability detection patterns across multiple languages and analysis layers.

Showing 125 of 247 detectors

IDNameSeverity
L020Use of tx.origin is unsafe in almost every contextlow
G049Don't use _msgSender() if not supporting EIP-2771info
L017Array does not have a pop functionlow
G221Emit Used In Loopinfo
NC047Expressions for constant values such as a call to keccak256(), should use immutable rather than constantinfo
L022Missing Reentrancy-Guard when using sendValue from OZ's Address.sollow
NC002TODO Left in the codeinfo
L026NFT contract redefines _mint()/_safeMint(), but not bothlow
Large approvals may not work with some tokensmedium
NC999Large or complicated code bases should implement invariant testsinfo
Pausing withdrawals is unfair to the userslow
G039>= costs less gas than >info
G009Use selfbalance() instead of address(this).balance when getting your contract's balance of ETH to save gas.info
L019Solidity version 0.8.20 may not work on other chains due to PUSH0low
Array lengths not checkedlow
Code does not follow the best practice of check-effects-interactionlow
No way to retrieve ETH from the contractmedium
NC028Interfaces should be indicated with an I prefix in the contract nameinfo
G042Use solidity version 0.8.20 or above to improve gas performanceinfo
G053array[index] += amount is cheaper than array[index] = array[index] + amount (or related variants)info
G023Internal functions only called once can be inlined to save gasinfo
NC050Use abi.encodeCall() instead of abi.encodeSignature()/abi.encodeWithSelector()info
M026Return values of approve() not checkedmedium
addresses upcast and compared to values larger than a uint160, may result in collisionslow
NC035Lines are too longinfo