Nouns Builder contest - 0xc0ffEE's results

A permissionless, governed protocol to deploy nouns-style DAOs complete with treasury, generative collections, and governance mechanisms.

General Information

Platform: Code4rena

Start Date: 06/09/2022

Pot Size: $90,000 USDC

Total HM: 33

Participants: 168

Period: 9 days

Judge: GalloDaSballo

Total Solo HM: 10

Id: 157

League: ETH

Nouns Builder

Findings Distribution

Researcher Performance

Rank: 68/168

Findings: 3

Award: $140.96

🌟 Selected for report: 0

🚀 Solo Findings: 0

Findings Information

🌟 Selected for report: dipp

Also found by: 0x1f8b, 0x52, 0xSky, 0xc0ffEE, Jeiwan, Migue, R2, bin2chen, datapunk, eierina, elad, hansfriese, hyh, scaraven

Labels

bug
duplicate
2 (Med Risk)
upgraded by judge

Awards

34.7819 USDC - $34.78

External Links

Judge has assessed an item in Issue #346 as Medium risk. The relevant finding follows:

#0 - GalloDaSballo

2022-09-27T14:52:18Z

The execution of MetadataRenderer.addProperties should be careful enough to not break the invariant numStoredProperties + numNewProperties < 16. Because there is no way to remove properties and when properties.length >= 16, there is revert at https://github.com/code-423n4/2022-09-nouns-builder/blob/7e9fddbbacdd7d7812e912a369cfd862ee67dc03/src/token/metadata/MetadataRenderer.sol#L194 when i >= 15. This could lead to revert on onMinted and the Auction will be in DOS status. Consider have a function to remove properties or have a check when adding new properties

Dup of #523

  1. The usage of msg.value here is unclear and also does not have any checks. As far as I know, the Treasury.execute uses Treasury fund, so make Governor.execute payable is no need https://github.com/code-423n4/2022-09-nouns-builder/blob/7e9fddbbacdd7d7812e912a369cfd862ee67dc03/src/governance/governor/Governor.sol#L340
  2. The logic here https://github.com/code-423n4/2022-09-nouns-builder/blob/7e9fddbbacdd7d7812e912a369cfd862ee67dc03/src/auction/Auction.sol#L149 does not match with the comment at the line above it. From the comment, I think should be auction.endTime = uint40(auction.endTime + settings.timeBuffer)
  3. The execution of MetadataRenderer.addProperties should be careful enough to not break the invariant numStoredProperties + numNewProperties < 16. Because there is no way to remove properties and when properties.length >= 16, there is revert at https://github.com/code-423n4/2022-09-nouns-builder/blob/7e9fddbbacdd7d7812e912a369cfd862ee67dc03/src/token/metadata/MetadataRenderer.sol#L194 when i >= 15. This could lead to revert on onMinted and the Auction will be in DOS status. Consider have a function to remove properties or have a check when adding new properties

#0 - GalloDaSballo

2022-09-26T20:55:12Z

2R

TODO: 3 is Med

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter