📗
owasp-smart-contract-top-10-ja
  • OWASP Smart Contract Top 10 ja
  • OWASP スマートコントラクト Top 10 日本語版
    • リーダー
  • OWASP スマートコントラクト Top 10 2025 日本語版
    • OWASP スマートコントラクト Top 10 2025
    • SC01:2025 - 不適切なアクセス制御 (Improper Access Control)
    • SC02:2025 - 価格オラクル操作 (Price Oracle Manipulation)
    • SC03:2025 - ロジックエラー (Logic Errors)
    • SC04:2025 - 入力バリデーションの欠如 (Lack of Input Validation)
    • SC05:2025 - 再入可能性 (Reentrancy)
    • SC06:2025 - チェックされていない外部呼び出し (Unchecked External Calls)
    • SC07:2025 - フラッシュローン攻撃 (Flash Loan Attacks)
    • SC08:2025 - 整数オーバーフローとアンダーフロー (Integer Overflow and Underflow)
    • SC09:2025 - 安全でないランダム性 (Insecure Randomness)
    • SC10:2025 - サービス拒否 (Denial Of Service)
  • OWASP スマートコントラクト Top 10 2023 日本語版
    • OWASP スマートコントラクト Top 10 2023
    • SC01:2023 - 再入攻撃 (Reentrancy Attacks)
    • SC02:2023 - 整数オーバーフローとアンダーフロー (Integer Overflow and Underflow)
    • SC03:2023 - タイムスタンプの依存性 (Timestamp Dependence)
    • SC04:2023 - アクセス制御の脆弱性 (Access Control Vulnerabilities)
    • SC05:2023 - フロントランニング攻撃 (Front-running Attacks)
    • SC06:2023 - サービス拒否攻撃 (Denial of Service (DoS) Attacks)
    • SC07:2023 - ロジックエラー (Logic Errors)
    • SC08:2023 - 安全でないランダム性 (Insecure Randomness)
    • SC09:2023 - ガス制限の脆弱性 (Gas Limit Vulnerabilities)
    • SC10:2023 - チェックされていない外部呼び出し (Unchecked External Calls)
Powered by GitBook
On this page
  • 説明:
  • 事例 :
  • 影響:
  • 対策:
  • ロジックエラーの被害を受けたスマートコントラクトの事例:
  1. OWASP スマートコントラクト Top 10 2023 日本語版

SC07:2023 - ロジックエラー (Logic Errors)

説明:

ロジックエラーは、ビジネスロジック脆弱性とも呼ばれ、スマートコントラクトの捉えにくい欠陥です。これはコントラクトのコードが意図した動作と一致しない場合に発生します。これらのエラーは見つけにくく、コントラクトのロジック内に隠れて発見されるのを待っています。

事例 :

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract LendingPlatform {
    mapping(address => uint256) public userBalances;
    uint256 public totalLendingPool;

    function deposit() public payable {
        userBalances[msg.sender] += msg.value;
        totalLendingPool += msg.value;
    }

    function withdraw(uint256 amount) public {
        require(userBalances[msg.sender] >= amount, "Insufficient balance");
        
        // Faulty calculation: Incorrectly reducing the user's balance without updating the total lending pool
        userBalances[msg.sender] -= amount;
        
        // This should update the total lending pool, but it's omitted here.
        
        payable(msg.sender).transfer(amount);
    }
}

影響:

  • ロジックエラーはスマートコントラクトが予期しない動作をしたり、完全に使用できなくなる可能性さえあります。これらのエラーは、資金の損失、トークンの不正な配布、その他の好ましくない結果をもたらす可能性があり、ユーザーや利害関係者に重大な金銭的影響や運用上の影響を及ぼす可能性があります。

対策:

  • 考えられるすべてのビジネスロジックを網羅する包括的なテストケースを記述して、常にコードを検証します。

  • 徹底的なコードレビューと監査を実施し、潜在的なロジックエラーを特定して修正します。

  • 各機能やモジュールの意図した動作を文書化し、実際の実装と比較して整合性を確認します。

ロジックエラーの被害を受けたスマートコントラクトの事例:

PreviousSC06:2023 - サービス拒否攻撃 (Denial of Service (DoS) Attacks)NextSC08:2023 - 安全でないランダム性 (Insecure Randomness)

Last updated 11 months ago

: 包括的な

: 包括的な

Level Finance ハック
ハック分析
BNO ハック
ハック分析