Platform: Code4rena
Start Date: 14/07/2022
Pot Size: $25,000 USDC
Total HM: 2
Participants: 63
Period: 3 days
Judge: PierrickGT
Total Solo HM: 1
Id: 147
League: ETH
Rank: 34/63
Findings: 1
Award: $41.28
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: hickuphh3
Also found by: 0x29A, 0x52, 0xNazgul, Chom, Deivitto, ElKu, Funen, IllIllI, Meera, ReyAdmirado, SooYa, TomJ, Trumpero, Waze, __141345__, ak1, asutorufos, c3phas, cRat1st0s, csanuragjain, delfin454000, exd0tpy, fatherOfBlocks, hake, hansfriese, horsefacts, hyh, karanctf, kenzo, kyteg, ladboy233, pashov, peritoflores, rajatbeladiya, rbserver, reassor, rokinot, simon135, wastewa
41.2753 USDC - $41.28
A detailed description of the impact of this finding.
The protocol relies on auctioneers to put bad debt into auction and liquidation or cancel the liquidated position
but it is possible that when auctioneers put debt into auction, the user adds more collateral to avoid liquidation,
and the
cancel
the function is never called.
Then the user's position is not subject to liquidation and can still be liquidated.
Provide direct links to all referenced code on GitHub. Add screenshots, logs, or any other relevant proof that illustrates the concept.
VIM
The developer can check if the user's position is subject to liqudiation when user calling payBase or payFYToken
function payFYToken( bytes12 vaultId, address to, uint128 minInkOut, uint128 maxArtIn ) external returns ( uint256 liquidatorCut, uint256 auctioneerCut, uint256 artIn ) { DataTypes.Auction memory auction_ = auctions[vaultId]; require(auction_.start > 0, "Vault not under auction"); require(cauldron.level(vaultId) < 0, "Not undercollateralized"); // this line is added to ensure user's position is subject to liquidation.
#0 - HickupHH3
2022-07-18T14:39:38Z
dup of #91
#1 - alcueca
2022-07-21T10:28:44Z
Duplicate of #40
#2 - PierrickGT
2022-07-28T15:29:00Z
Downgraded to QA Report since this issue is related to a design decision.
#3 - PierrickGT
2022-07-30T16:04:48Z
Only issue submitted by this warden, since it has been downgraded to QA report, I will remove the duplicate label and reopen it.