Quantstamp reviewed NFTonPulse on 21 Jul 2023: 25 findings, 0 critical; 16 marked fixed, 6 acknowledged, 3 open.
Report hosted on certificate.quantstamp.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 | 1 | 0 | 1 |
| Medium | 2 | 1 | 3 |
| Low | 0 | 5 | 12 |
This attack can take two main forms: 1. **Continuously Delaying the End Time of an Auction:** The function `bid()` allows a user to bid on an item listed for auction on the marketplace. If the bid is done while there are less than 10 minutes` left, the auction is extended by `10 minutes` more. While the auction is active, the item owner cannot accept any bids. And for a user to place a bid, they just need to have enough balance and allowance, they do not need to transfer funds to the contract. An attacker can simply target an item that is being auctioned on, and keep bidding whenever there are less than 10 minutes left. Effectively stretching the auction forever. 2. **Out-of-Gas Error Through a Large Number of Bids:** The function `getBestBid()` loops through all the bids and selects the highest one. And it is called whenever the item owner wants to accept a bid, by calling the function `terminateAuction()`. `getBestBid()` loops over all the bids and selects the highest one that passes certain checks. However, it is possible to mass place bids, even by the same attacker, on the same item. Causing the mapping `bids[]` array to grow substantially. This will force the item owner to pay high gas to settle the bid or, in the worst case scenario, may prevent their transaction from completing due to an out-of-gas error.
The function `createToken()` does not check if the current `newItemId` is less than the `LAZY_MINT_TOKENID_START`, this can make newly minted tokens to cross this threshold and start consuming lazy token ids.
The `NFTMarketAuction.bid()` function contains the following line: ```solidity require( msg.sender != marketItem.ownerAddress, "Auction owner can't place bid on his Auction" ); ``` However, it is very easy for the owner to bid on their own auction with a different address, effectively bypassing this mechanism. Furthermore, the function `NFTMarketOffers.offerOnNft()` allows a user to place offers on items they own. Combined with `acceptOffer()`, which allows users to accept their own offers, this creates an illusion of supply and demand for a given item.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (1)
236 projects reviewed · 332 reports · latest Oct 2026
See Quantstamp’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