code-423n4 / 2022-02-nested-findings

0 stars 0 forks source link

QA Report #66

Open code423n4 opened 2 years ago

code423n4 commented 2 years ago
maximebrugel commented 2 years ago

« Function releaseTokens uses weth, not eth (…) » (Duplicated)

https://github.com/code-423n4/2022-02-nested-findings/issues/15

« OwnableProxyDelegation is Context, but still uses msg.sender, not _msgSender() (…) » (Acknowledged)

No meta-transaction support for this admin function.

« Function rebuildCache() in MixinOperatorResolver does not delete removed operators from operatorCache (…) » ( Duplicated)

https://github.com/code-423n4/2022-02-nested-findings/issues/18

« Consider introducing an upper limit for _timestamp in updateLockTimestamp (…) » (Acknowledged)

We are not sure about an upper limit to set.

« (…) addFactory should have an analogous check » (Disputed)

No need for a require as long as supportedFactories[_factory] = true does not disrupt the protocol state.

« The revert message is a bit misleading here » (Disputed)

I don’t really know what is misleading. You can’t withdraw the last token and keep an empty portfolio.

« adding support for rescuing the native asset » (Acknowledged)

We will fix this issue by adding a require in the receive function. Also, the user can't send more ETH than needed with the _checkMsgValue function.

harleythedogC4 commented 2 years ago

My personal judgements:

  1. "Function releaseTokens uses weth". This is a gas optimization. Will keep it in mind when scoring #67. For here, Invalid.
  2. "OwnableProxyDelegation is Context". Valid and very-low-critical.
  3. "Function rebuildCache() in MixinOperatorResolver does not delete removed operators from operatorCache". This has been upgraded to medium severity in #77. Will not contribute to QA score.
  4. "Consider introducing an upper limit for _timestamp in updateLockTimestamp". I think this is a good idea. Valid and low-critical.
  5. "addFactory should have an analogous check". Just a consistency suggestion, valid and non-critical.
  6. "The revert message is a bit missleading here". Warden doesn't explain enough why it is misleading. Invalid.
  7. "Consider also adding support for rescuing the native asset". Valid and low-critical.
harleythedogC4 commented 2 years ago

Now, here is the methodology I used for calculating a score for each QA report. I first assigned each submission to be either non-critical (1 point), very-low-critical (5 points) or low-critical (10 points), depending on how severe/useful the issue is. The score of a QA report is the sum of these points, divided by the maximum number of points achieved by a QA report. This maximum number was 26 points, achieved by https://github.com/code-423n4/2022-02-nested-findings/issues/66.

The number of points achieved by this report is 26 points. Thus the final score of this QA report is (26/26)*100 = 100.