DeFiHardhat
12,000 USDC
View results
Submission Details
Severity: low
Invalid

LibMath::roundUpDiv() no check for division by zero

Summary

Function roundUpDiv() in LibMath.sol library does not check if b parameter is zero

Vulnerability Details

As written in summary: roundUpDiv() function does not check if denominator is zero

Impact

Dividing by zero will cause unexpected error

Tools Used

Foundry test:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Test, console} from "forge-std/Test.sol";
import {LibMath} from "../../src/libraries/LibMath.sol";
contract LibMathTest is Test {
using LibMath for uint256;
function setUp() public {}
function testRoundUpDiv() public pure {
uint256 a = 2;
uint256 b = 0;
a.roundUpDiv(b);
}
}

Result of the test:

[FAIL. Reason: panic: division or modulo by zero (0x12)] testRoundUpDiv() (gas: 402)
Traces:
[402] LibMathTest::testRoundUpDiv()
└─ ← [Revert] panic: division or modulo by zero (0x12)

Recommendations

Add following line at the beginning of roundUpDiv() function:

require(b > 0);
Updates

Lead Judging Commences

giovannidisiena Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

Informational/Invalid

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.