Skip to content

Solidity Rules

SAST rules for Solidity that identify insecure patterns in application code.

Solidity Rule Catalog

IDTitleSeverityCategory
CODE-0099ERC20 Token Burn VulnerabilityCRITICALCrypto
CODE-0202Unrestricted transferOwnershipCRITICALAccessControl
CODE-0235Arbitrary Address Spoofing via Multicall and ERC2771ContextCRITICALWeb
CODE-0259Unrestricted Oracle Price UpdateCRITICALAccessControl
CODE-0435transferFrom() can steal allowance of other accountsCRITICALCrypto
CODE-0471Precision Loss Attack in Compound ForksCRITICALCrypto
CODE-0483Missing Oracle Access ControlCRITICALAccessControl
CODE-0658Improper Input Validation in Superfluid ContextCRITICALInjection
CODE-0679Unrestricted Contract DestructionCRITICALAccessControl
CODE-0802Missing Access Control in setMultipleAllowances() FunctionCRITICALAccessControl
CODE-0096Proxy Storage CollisionHIGHInsecureConfig
CODE-0105Unprotected getRate() call on Balancer poolHIGHInjection
CODE-0108ERC777 tokensReceived() ReentrancyHIGHCrypto
CODE-0206Custom ERC20 implementation exposes _transfer() as publicHIGHAccessControl
CODE-0211Incorrect call order of transferFrom() and rebase() in Olympus DAO forksHIGHCrypto
CODE-0217ERC721 onERC721Received() ReentrancyHIGHCrypto
CODE-0228Oracle Uses Manipulable Curve Pool FunctionHIGHCrypto
CODE-0231ERC677 callAfterTransfer() ReentrancyHIGHCrypto
CODE-0248No slippage check in Uniswap v2/v3 tradeHIGHCrypto
CODE-0250Arithmetic UnderflowHIGHCrypto
CODE-0281Reentrancy vulnerability in borrowFresh functionHIGHCrypto
CODE-0288Public _transferFeesSupportingTaxTokens function without access modifierHIGHAccessControl
CODE-0433UniswapV3 adapter path parameter extraction vulnerabilityHIGHCrypto
CODE-0436Custom ERC721 implementation lacks access control checks in _transfer()HIGHAccessControl
CODE-0466Unprotected $VAULT.getPoolTokens() call from read-only reentrancyHIGHInjection
CODE-0479Unprotected Curve Pool from Read-Only ReentrancyHIGHCrypto
CODE-0485Uniswap callback is not protectedHIGHAccessControl
CODE-0495Insecure Keep3rV2 Oracle ManipulationHIGHCrypto
CODE-0503Incorrect Position of 'from' Parameter Check in '_allowances' MappingHIGHAccessControl
CODE-0505Unprotected transferFrom() FunctionHIGHAccessControl
CODE-0652Delegatecall to Arbitrary AddressHIGHSmart Contract
CODE-0656Arbitrary Low-Level CallHIGHInjection
CODE-0678Unrestricted sweepToken FunctionHIGHAccessControl
CODE-0768Price Oracle Manipulation via FlashloanHIGHCrypto
CODE-0801Multicall Reentrancy VulnerabilityHIGHSmart Contract
CODE-0208Potential signature malleability in ECDSA recoveryMEDIUMCrypto
CODE-0438Meaningless StatementMEDIUMGeneric
CODE-0474Incorrect use of blockhashMEDIUMCrypto
CODE-0484abi.encodePacked hash collision with variable length argumentsMEDIUMCrypto
CODE-0657Insecure Exact Balance CheckMEDIUMCrypto
CODE-0737Unicode Direction Control Characters DetectedLOWInsecureConfig

Total Rules: 41

Click on any rule ID to view detailed information, examples, and remediation guidance.