Immunefi Vulnerability Severity Classification System
At Immunefi, we classify bugs on a simplified 5-level scale:
- Critical
- High
- Medium
- Low
- None
This scale encompasses all the aspects of a bug, from the consequence of a successful exploit, to the level of access required to exploit it, to the probability that an exploitation attempt will be successful.
For example:
-
A bug that results in loss of contract funds is more severe than a bug that temporarily prevents token holders from transferring their tokens.
-
A bug that can be triggered by any token holder is more severe than a bug that requires a pricing oracle to go rogue.
-
A bug that can be triggered by a third party invoking a particular function/method is more severe than a bug that requires the affected token holder to invoke that same function/method.
The table below is mostly concerned with the consequence of a successful exploit. Keep in mind that if the exploit requires elevated privileges or uncommon user interaction, the level of the bug may be downgraded to reflect that.
Smart Contracts/Blockchain
Level | Examples |
---|---|
5. Critical | Empty or freeze the contract’s holdings (e.g. economic attacks, flash loans, reentrancy, logic errors, integer over-/under-flow) |
Cryptographic flaws | |
4. High | Theft of yield |
Token holders temporarily unable to transfer holdings | |
Users spoof each other | |
Trusting trust/composability bugs may be Critical, High, or Medium depending on the outcome | |
Transient consensus failures | |
3. Medium | Contract out of gas |
Contract consumes unbounded gas | |
Block stuffing | |
Denial of service (e.g. spamming block space) | |
2. Low | Contract fails to deliver promised returns, but doesn't lose value |
1. None | Not following best practices |
Websites and Apps
Level | Examples |
---|---|
5. Critical | Deletion of site data |
XSS/CSRF | |
Arbitrary code execution | |
Shell access on the server | |
SQL injection | |
4. High | Users spoof each other |
Leaking user data | |
Insufficient validation before viewing sensitive pages | |
Dumping, but not modifying database | |
3. Medium | Denial of service |
Site goes down | |
DNS zone transfer misconfiguration | |
2. Low | DoS amplification |
Unsecured recursive DNS resolver | |
Open SMTP relay | |
Bad SSL settings | |
Missing security headers (with impact) | |
1. None | Using RSA1024 |
No ASLR | |
No verification email | |
Not using argon2 for password hashing | |
Missing captcha | |
Bad password policy | |
Missing DMARC/DKIM/SPF on a mailserver | |
Not following best practices | |
IP disclosure |