Skip to main content
Version: Next

Detectors Overview

Built-in Detectors

#DetectorSeverityCategoryRequires SouffléEnabled by default
1ArgCopyMutationHighSecurity
2AsmIsUsedInfoSecurity
3BranchDuplicateHighSecurity
4CellBoundsCriticalSecurity
5ConstantAddressInfoSecurity
6DivideBeforeMultiplyHighSecurity
7DumpIsUsedInfoSecurity
8DuplicatedConditionHighSecurity
9DuplicatedImportMediumOptimization
10EnsurePrgSeedMediumSecurity
11EtaLikeSimplificationsLowOptimization
12ExitCodeUsageHighSecurity
13FalseConditionMediumSecurity
14FieldDoubleInitMediumOptimization
15ImplicitOpcodeInfoBest Practices
16InheritedStateMutationLowBest Practices
17NeverAccessedVariablesMediumSecurity
18OptimalMathFunctionLowOptimization
19PreferAugmentedAssignInfoBest Practices
20PreferBinaryReceiverLowOptimization
21PreferSenderFunctionLowOptimization
22PreferredStdlibApiInfo—LowOptimization, Security
23ReadOnlyVariablesMediumSecurity
24SendInLoopMediumSecurity
25ShortCircuitConditionLowOptimization
26StateMutationInGetterInfoSecurity
27StringReceiversOverlapHighSecurity
28SuboptimalCellOperationMediumOptimization
29SuboptimalSendMediumOptimization
30SuspiciousLoopMediumSecurity
31SuspiciousMessageModeLow—MediumSecurity
32TransitiveImportMediumBest Practices
33UnboundLoopHighSecurity
34UnboundMapLowSecurity
35UnprotectedCallHighSecurity
36UnusedExpressionResultMediumSecurity
37UnusedOptionalLowOptimization
38ZeroAddressLowSecurity

Some of the detectors require Soufflé to be installed. If no Soufflé installation is found, these detectors won't be executed.

A few detectors are optional and aimed at auditors to help uncover subtle issues in the source code. To enable all detectors, use the --all-detectors option. You can find a full list of configuration options on the configuration page.

Each detector targets a specific type of problem in your code. Click on the detector name to learn more.

Detector Severities and Categories

Severity Levels

Findings are classified according to their impact severity:

SeverityDescription
InfoInformational findings that highlight potential improvements
LowMinor issues with limited impact
MediumSignificant issues that should be addressed
HighSerious vulnerabilities requiring immediate attention
CriticalSevere vulnerabilities with catastrophic potential impact

Categories

Findings are organized into the following categories:

CategoryDescription
SecurityAny possible unintended behavior leading to bugs or vulnerabilities
OptimizationCode improvements for gas-optimizations
Best PracticesGeneral code quality advices