-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Malicious Actor Can Permanently Block Onboarding #1074
Comments
0xSorryNotSorry marked the issue as sufficient quality report |
0xSorryNotSorry marked the issue as duplicate of #1125 |
Trumpero changed the severity to QA (Quality Assurance) |
Trumpero marked the issue as grade-a |
Trumpero marked the issue as grade-c |
Hey @Trumpero, thanks for judging! Any reason the grade-a was changed to grade-c considering that working PoC was implemented? |
When an issue is downgraded to QA, it will be counted in the QA report of the warden. After judging QA reports, including all downgraded issues, those downgraded issues of that warden will be given the same grade label based on QA points of the warden. In this contest, you don't have a good enough QA points to surpass the grade-b threshold. You have a total of 1 Low (this issue), so you have only 5 points in my evaluation (5 points for low, 1 point for R/NC, 0 for info). However, the threshold for grade-b is 25 points (adjusted from 60% points of the best QA report), so your QA issue should be marked as grade-c. |
Lines of code
https://github.com/code-423n4/2023-12-ethereumcreditguild/blob/main/src/governance/LendingTermOnboarding.sol#L187-L192
https://github.com/code-423n4/2023-12-ethereumcreditguild/blob/main/src/governance/GuildGovernor.sol#L18
Vulnerability details
Impact
A vulnerability in the onboarding process allows a malicious actor to exploit the
LendingTermOnboarding.proposeOnboard()
andGovernor.cancel()
functions in a manner that can lead to permanent disruption. This actor can initiate an onboard proposal and then cancel it, triggering theMIN_DELAY_BETWEEN_PROPOSALS
period (7 days).As this action can be repeated indefinitely, it presents a risk of permanently blocking the onboarding of new terms.
Proof of Concept
Add this test function to
test/unit/governance/LendingTermOnboarding.t.sol
:Run the test with
forge test -vv --match-test testAuditProposeOnboardCancel
. Expected output:Tools Used
VSCode, Foundry
Recommended Mitigation Steps
It is advised to override in
LendingTermOnboarding.sol
thecancel()
function in a manner similar to thepropose()
function, with arevert
statement to block its execution. This will ensure that the propose and cancel functions cannot be used in tandem to perpetually block the onboarding process.Updated
LendingTermOnboarding.sol
:Assessed type
DoS
The text was updated successfully, but these errors were encountered: