docs: fix FAQ about excess USDC - warn it can be extracted via flash loan #16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes a misleading FAQ entry that incorrectly stated excess USDC "cannot be borrowed." In reality, excess USDC (actual balance - poolBalance) can be extracted by anyone via flash loan because the repayment check only verifies
balanceAfter >= poolBalance, notbalanceAfter >= balanceBefore.The updated FAQ now warns users about this risk and recommends calling
sync()immediately after any direct transfers to protect excess funds.Review & Testing Checklist for Human
src/LIQFlashYul.sollines 167-176 (should beif lt(mload(0x00), poolBal) { revert })Test plan: This is a documentation-only change. Review the wording for clarity and technical accuracy.
Notes
This issue was identified during discussion about Issue #12 (excess USDC security concern). The previous FAQ was misleading - while
amount <= poolBalanceprevents borrowing MORE than poolBalance, it doesn't prevent extracting excess funds via reduced repayment.Link to Devin run: https://app.devin.ai/sessions/861106c4151b439ebcb344694d9b611a
Requested by: Player 53627 (github.stagnate430@passmail.com) / @igor53627