FEATURED POST

October 15, 2025

Banner Image for Understanding Critical, High Medium and Low Vulnerabilities Article by Sherlock Smart Contract Security

Smart contract vulnerabilities are ranked by severity to measure risk and prioritize remediation. These classifications help developers and auditors understand which issues demand immediate fixes and which can be addressed over time:

Critical: Complete compromise of funds or system control

High: Major loss or disruption requiring urgent attention

Medium: Limited or situational risk that affects part of the system

Low: Minor inefficiencies or best-practice improvements that don’t impact security directly

Understanding Critical, High, Medium, and Low Vulnerabilities in Smart Contracts

Vulnerability levels form the common language of risk in smart contract security. They allow teams to quantify how severe a flaw is, how likely it is to be exploited, and how urgently it needs to be fixed. During audits, vulnerabilities are typically categorized as Critical, High, Medium, or Low, giving developers, auditors, and protocol teams a clear framework for prioritizing remediation Each severity level reflects a balance between impact and exploitability, starting from issues that could completely compromise a protocol to findings that serve as quality or best-practice improvements.

In this article, we’ll outline the standard vulnerability classifications, describe their potential impacts, and provide a framework for contextualizing them within smart contract audits.

Vulnerability Severity Overview

Severity levels define the real-world impact of vulnerabilities in smart contracts. Because these systems directly hold or manage on-chain value, even a small logic mistake can lead to catastrophic loss. Classification helps teams focus resources - identifying which issues can break the protocol, which merely reduce efficiency, and which are worth addressing for best practice. The following breakdown outlines each severity level and what it typically looks like in an audit.

Critical Severity

A Critical vulnerability allows a complete compromise of a system—loss of funds, permanent lock of assets, or takeover of core controls. These issues typically arise from broken authorization, unchecked external calls, or flawed accounting that exposes full control to an attacker. They are easily exploitable or highly rewarding, so they must be assumed exploitable in practice.

Example: A privileged function lacks proper access control, allowing any user to move protocol funds or alter key system parameters.

High Severity

A High vulnerability causes major loss or disruption but doesn’t destroy the entire system. These findings often enable manipulation of balances, markets, or protocol logic in ways that produce significant financial or operational damage. They require realistic effort to exploit: often achievable by a capable attacker within normal conditions.

Example: A price calculation relies on a manipulable on-chain value, letting an attacker distort exchange rates and profit from mispriced transactions.

Medium Severity

A Medium vulnerability presents tangible but limited risk. Exploitation usually needs precise timing, specific inputs, or partial system access, and the resulting damage is localized to one component or user group. These bugs don’t typically threaten protocol survival but can degrade trust, create unfair outcomes, or lead to cumulative losses over time.

Example: A rewards formula rounds down fractional tokens, allowing small imbalances to accumulate to certain users’ benefit under specific usage patterns.

Low Severity

A Low vulnerability has minimal impact on security or funds. It generally involves code clarity, outdated practices, or inefficiencies that don’t compromise safety but could affect maintainability or performance. Fixing these issues improves long-term robustness and helps prevent larger problems as the codebase evolves.

Example: A contract uses an obsolete coding pattern that increases gas cost and complexity but has no exploitable effect on logic or security.

Severity Across Audits, Contests, and Bug Bounties

While the same Critical-to-Low framework is widely used across Web3 security, the way severity is applied varies depending on the type of review. Collaborative audits, audit contests, and bug bounty programs each interpret severity slightly differently based on scope, timing, and objectives. The following section outline how these environments typically approach vulnerability classification and how severity influences response, prioritization, and reward structure.

Severity in Audits

In collaborative audits, severity generally determines how findings are prioritized and when they should be fixed. Critical and High issues are usually addressed immediately and may block deployment until verified as resolved. Medium and Low issues are often logged, discussed with the development team, and scheduled for remediation based on context, effort, and perceived risk.

Exact criteria for classification vary between providers, but the goal is consistent: establish a shared, transparent understanding of risk and remediation urgency between reviewers and the project team.

Severity in Audit Contests

In audit contests, the codebase is pre-launch, and severity serves both as a measure of risk and a way to structure rewards. Researchers independently analyze the code to identify potential vulnerabilities, which are later reviewed and assigned final severity levels by the contest’s judging or triage team. Payouts are usually tiered by severity, with Critical findings receiving the highest rewards and lower-impact issues earning proportionally less. Different platforms apply their own weighting models, but the intent is the same = incentivize the discovery of high-impact issues while encouraging broad coverage of the entire codebase.

Severity in Bug Bounty Programs

In bug bounty programs, severity typically dictates how a live protocol prioritizes reports and allocates response effort. Critical and High issues often trigger private disclosure and immediate coordination between the reporter and the project team, while Medium and Low findings move through standard verification and patch processes. Response procedures, disclosure rules, and payout structures vary across programs, but most use severity as the baseline for triage. This helps teams focus on vulnerabilities that pose the greatest real-world risk while still addressing lower-severity reports in an organized, consistent way.

Closing Thoughts

Severity classifications are ultimately subjective frameworks shaped by human judgment. Different auditors may rate the same issue differently depending on exploitability assumptions, protocol design, and risk tolerance. What matters most is consistency, context, and transparency in how those judgments are made - severity classifications provide the foundation for how vulnerabilities are found, prioritized, and resolved across audits, contests, and bounties.

For teams aiming to secure their code from development through production, the Sherlock Intelligence delivers dynamic, full-lifecycle security - combining collaborative audits, continuous monitoring, and bounty protection in one connected framework. Contact our team to learn more.