Closed thebrittfactor closed 11 months ago
For transparency, due to submission issues, the warden provided this submission prior to audit close.
141345 marked the issue as sufficient quality report
a2rocket (sponsor) disputed
This is not an issue its the intended design. As we can have multiple allowlist minting phases each one can have its own address where the NFTDelegation contract can check the delegation status between the allowlist address (delegator) and msg.sender.
The Warden specifies that the delegation address of a collection ID can be mutated by two different ACL members; the collection administrator as well as the "global" function administrator of MinterContract::updateDelegationCollection
.
I deem this to be a non-issue given that one permits the administrator of the collection to mutate their own collection's delegation whilst the other permits the global function administrator to mutate the delegation of any collection that conforms to expected ACL layouts.
alex-ppg marked the issue as unsatisfactory: Invalid
Lines of code
https://github.com/code-423n4/2023-10-nextgen/blob/main/hardhat/smart-contracts/MinterContract.sol#L164
Vulnerability details
Impact
Function updateDelegationCollection() which update allowlist mint delegation collection prevents collection admin and any other actors from perfoming this except global and Function Admin.
However, collection admin can still change delegation Address by calling setCollectionCosts()
Proof Of Concept
setCollectionCosts():
As you can see, this gives collection admin access to change delegation Address as well
Tools Used
Visual Studio Code
Recommended Mitigation Steps
update changing delegation address to be only accessed by the global and Function Admin with only updateDelegationCollection()
Assessed type
Access Control