Payouts
1st Places
2nd Places
3rd Places
All
Code4rena
Jan '24
Dec '23
Oct '23
Jul '23
Jan '23
high
Basket range formula is inefficient, leading the protocol to unnecessary haircut
medium
In case that `unstakingDelay` is decreased, users who have previously unstaked would have to wait more than `unstakingDelay` for new unstakes
medium
`refresh()` will revert on Oracle deprecation, effectively disabling part of the protocol
medium
`Asset.lotPrice()` doesn't use the most recent price in case of oracle timeout
Dec '22
high
Users can bypass the `maxWinPercent` limit using a partially closing
medium
`safeTransferMany()` doesn't actually use safe transfer
medium
Centralization risks: owner can freeze withdraws and use timelock to steal all funds
medium
User can close an order via `limitClose()`, and take bot fees to themselves
medium
`executeLimitOrder()` modifies open-interest with a wrong position value
high
`LPDA` price can underflow the price due to bad settings and potentially brick the contract
medium
ETH will get stuck if all NFTs do not get sold.
medium
Sale contracts can be bricked if any other minter mints a token with an id that overlaps the sale
medium
Creator can still "cancel" a sale after it has started by revoking permissions in `OpenEdition` contract
Nov '22
Oct '22
high
Failed job can't be recovered. NFT may be lost.
high
Gas limit check is inaccurate, leading to an operator being able to fail a job intentionally
high
If user sets a low `gasPrice` the operator would have to choose between being locked out of the pod or executing the job anyway
high
An attacker can lock operator out of the pod by setting gas limit that's higher than the block gas limit of dest chain
medium
Beaming job might freeze on dest chain under some conditions, leading to owner loosing (temporarily) access to token
Sep '22
Aug '22
high
Any borrower with bad debt can be liquidated multiple times to lock funds in the lending pair
high
`liquidate()` doesn't mark off bad debt, leading to a 'last lender to withdraw looses' scenario
medium
Penalty rate is used for pre-maturity date as well
medium
FraxlendPair#setTimeLock: Allows the owner to reset TIME_LOCK_ADDRESS
medium
Interest can be significantly lower if `addInterest` isn't called frequently enough
medium
Impossible to `setCreationCode()` with code size less than 13K
medium
Wrong percent for `FraxlendPairCore.dirtyLiquidationFee`.
medium
Liquidator might end up paying much more asset than collateral received
high
Builder can call `Community.escrow` again to reduce debt further using same signatures
high
Project funds can be drained by reusing signatures, in some cases
medium
Attacker can drain all the projects within minutes, if admin account has been exposed
medium
Anyone can create disputes if `contractor` is not set
medium
`Project.raiseDispute()` doesn't use approvedHashes - meaning users who use contracts can't raise disputes
Jul '22
high
Vault implementation can be destroyed leading to loss of all assets
high
Division rounding can make fraction-price lower than intended (down to zero)
high
Cash-out from a successful buyout allows an attacker to drain Ether from the `Buyout` contract
medium
An attacker can DoS vault's buyout with as little as 1 wei per 4 days
medium
[Buyout module] Fraction price is not updated when total supply changes
Jun '22