CertiK reviewed Ebisusbay (Ebisu’s Bay) on 12 May 2022: 8 findings, 0 critical; 6 marked fixed, 2 acknowledged.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 1 | 0 |
| Medium | 0 | 0 | 1 |
| Low | 0 | 1 | 5 |
In the contract `EbisusBayMembership`, the role `_owner` has authority over the following functions: - `setURI()`: update the URI for a given id; - `pause()`/`unpause()`: pause/unpause the contract; - `updatePrice()`: update the price for minting tokens; - `withdraw()`: withdraw ETH within the contract. In the contract `Marketplace`, the `UPGRADER_ROLE` role has the authority over the `_authorizeUpgrade`, which can upgrade the contract.\ The `STAFF_ROLE` has the authority over the following functions: - `cancelListing()`: cancel an listing order; - `registerRoyalty()`/`removeRoyalty()`: register/remove an nft as/from "royalty" role; Additionally, the role `DEFAULT_ADMIN_ROLE` has the authority over the following functions: - `withdraw()`: withdraw fees within the contract; - `updateFees()`: update fee value. In the contract `ReferralCode`, the `_owner` has the authority over the following functions: - `registerUser()`: register a referrer. Any compromise to the aforementioned privileged account may allow a hacker to take advantage of this authority and manipulate the protocol.
In the contract `EbisusBayMembership`, the function `updatePrice()` can update the price for minting tokens. ```solidity=145 function updatePrice(uint256 _price, uint256 _discount, uint64 _id) public onlyOwner validId(_id) { if(_id == FOUNDER){ founderPrice = _price; founderReferralDiscount = _discount; } else if(_id == VIP){ vipPrice = _price; vipReferralDiscount = _discount; } else if(_id == VVIP) { vvipPrice = _price; vvipReferralDiscount = _discount; } } ``` However, there is no explicit validation to ensure the updated price is within a certain range. The concern, if the owner accidentally and improperly set the fee as 0, users could mint tokens without any fee. Therefore, the project might suffer loss. In the contract `Marketplace`, the function `updateFees` can update fees related to the marketplace. ```solidity=248 function updateFees(uint16 _regFee, uint16 _memFee, uint16 _vipFee) public onlyRole(DEFAULT_ADMIN_ROLE){ regFee = _regFee; memberFee = _memFee; vipFee = _vipFee; } ``` However, there is no explicit validation to ensure the updated fees are within a certain range. Therefore, if the fees are set improperly, it could lead to loss to the project and users.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (7)
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us