NFTonPulse

QuantstampFiles named in the report

Quantstamp reviewed NFTonPulse on 21 Jul 2023: 25 findings, 0 critical; 16 marked fixed, 6 acknowledged, 3 open.

No open critical findings
Open the reportOpen NFTonPulse’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings25

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High101
Medium213
Low0512
HighDoS VulnerabilityOpen

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.

MediumIt Is Possible to Cross the `lazyMint` ThresholdOpen

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.

MediumMechanism to Prevent Owner From Bidding in Their Own Auction Can Be Easily BypassedOpen

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.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (1)

  • src/*

Part of NFTonPulse’s security record

NFTonPulse
Audits1 audit by 1 firmLast audit Jul 2023, by Quantstamp.
Critical findingsNo open critical findingsIn 1 report.
Open NFTonPulse’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’s audits

Something 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