πŸ“„

Report #12333

Report Date
October 11, 2022
Status
Closed
Payout

A reverting fallback function will lock up all payouts

β€£
Report Info

Report ID

#12333

Target

Report type

Smart Contract

Impacts

Permanent freezing of funds

Has PoC?

Yes

Bug Description

In Address.sol, the internal function sendvalue() reverts if the transfer does not succeed: function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance");

    // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
    (bool success, ) = recipient.call{ value: amount }("");
    require(success, "Address: unable to send value, recipient may have reverted");
}

sendValue() is called to send value. If any of the recipients of an sendValue is a smart contract that reverts, then the entire payout will fail and will be unrecoverable

Impact

Loss of fund

Risk Breakdown

Difficulty to Exploit: Easy Weakness: CVSS2 Score:

References

Proof of concept

BIC Response

This is not a security bug report because sendValue() is part of the Address.sol contract from OpenZeppelin, but this function actually is not even used in that ERC20 token contract.

Due to these reasons, we are closing the submission and no reward will be issued.

Halborn Response

This report does not really make much sense. I believe we are talking about this contract:Β https://etherscan.io/address/0x1BEA0050E63e05FBb5D8BA2f10cf5800B6224449?utm_source=immunefi#code. sendValue()Β is part of the Address.sol contract from OpenZeppelin, but this function actually is not even used in that ERC20 token contract. And even if it was used, I see no issue with it.