Closed c4-bot-2 closed 10 months ago
141345 marked the issue as duplicate of #407
141345 marked the issue as not a duplicate
141345 marked the issue as primary issue
141345 marked the issue as sufficient quality report
Alec1017 (sponsor) acknowledged
Alec1017 marked the issue as disagree with severity
Would consider this more of a QA.
0xean marked the issue as unsatisfactory: Insufficient quality
Hey @0xean, thank you for your time.
I think this report should be reviewed as it clearly shows a way in which there is one entity in the system that is responsible for the entire protocol. Also, there was no word on what the executor account setup would be, and as we pointed out in our report, the sponsor said it would assign it to EOA.
Similarly, last week Concentric protocol was hacked, due to a social engineering attack, and the deployer key was stolen, the result was catastrophic.
The attack path is the same as this one, a single entity was holding the control over all the important functions. There is also a financial incentive for the attacker as he can effectively steal all the fees accumulated in the PaymentEscrow module. The attacks mentioned in the ProofOfConcept section are explaining what are the most bad consequences (all current lenders to lose their assets and all the rented NFTs to be locked in their wallets).
leaving as judged.
Lines of code
https://github.com/re-nft/smart-contracts/blob/3ddd32455a849c3c6dc3c3aad7a33a6c9b44c291/src/Kernel.sol#L277-L302
Vulnerability details
Impact
As discussed with the sponsors
executor
is a critical role that will be given whenKernel
is being deployed. Then the only way in which the executor can be changed is throughexecuteAction
which hasonlyExecutor
modifier.Kernel.sol#L252-L257
Kernel.sol#L277-L302
This can result in catastrophic consequences if the executor turns out to be malicious or if his private key is stolen.
In our discussion it was mentioned that the
executor
won’t be a multisig wallet, but a normal EOA.Proof of Concept
There are various actions that can be performed in order to harm the protocol and it’s users:
PaymentEscrow
, and wipe out the internal balance which is used to keep track of theERC20
tokens that are sent when order is fulfilled and should be settled to the users after rent is stopped. That will lead to the inability to terminate all the rentals + all the escrowed funds will be lost.PaymentEscrow.sol#L19-L25
Tools Used
Manual Review
Recommended Mitigation Steps
Consider applying the following changes to remove the centralisation and ensure seamless operation of the protocol:
executor
.Assessed type
Rug-Pull