Payouts
1st Places
2nd Places
3rd Places
All
Code4rena
Jan '24
Oct '23
Sep '23
Aug '23
Jul '23
high
Liquidation transactions can potentially fail for all markets
high
Reentrancy in `USDO.flashLoan()`, enabling an attacker to borrow unlimited USDO exceeding the max borrow limit
high
Collateral can be locked in BigBang contract when `debtStartPoint` is nonzero
high
Ability to steal user funds and increase collateral share infinitely in BigBang and Singularity
high
`SGLLiquidation::_computeAssetAmountToSolvency`, `Market::_isSolvent` and `Market::_computeMaxBorrowableAmount` may overestimate the collateral, resulting in false solvency
high
`BigBang::repay` and `Singularity::repay` spend more than allowed amount
medium
liquidation will fail if the Seer or Oracle reverts instead of returning false
medium
`totalCollateralShare` state variable not updated in `Singularity` market upon liquidation, resulting in an error on `addCollateral` with skim functionality
medium
Tapioca Bar: Unusable Market Add Functions in Penrose Contract
medium
`TapiocaOptionLiquidityProvision.registerSingularity()` not checking for duplicate assetIds leading to multiple issues.
medium
all deposit and withdraw function in Convex and Curve nativeLP Strategy, apply slippage on internal pricing; which call real-time on chain price from Curve directly and subject to MEV
medium
`YieldBox::deposit`, `YieldBox::withdraw` might lock ERC1155 NFT if deposited/withdrawn with less than 1e8 share.
medium
`SGLBorrow::repay` and `BigBang::repay` uses `allowedBorrow` with the asset amount, whereas other functions use it with share of collateral
May '23
Mar '23
Feb '23
Jan '23
Nov '22
Oct '22
Sep '22
Aug '22
high
In `Governance.sol`, it might be impossible to activate a new proposal forever after failed to execute the previous active proposal.
high
TRSRY: front-runnable `setApprovalFor`
medium
`activateProposal()` need time delay
medium
Voted votes cannot change after the user are issued with new votes or the user's old votes are revoked during voting
medium
OlympusGovernance: Users can prevent their votes from being revoked
medium
TRSRY: reenter from OlympusTreasury::repayLoan to Operator::swap
medium
Operator: if WallSpread is 10000, `operate` and `beat` will revert and price information cannot be updated anymore
medium
[NAZ-M1] Chainlink's `latestRoundData` Might Return Stale Results
medium
Heart::beat() could be called several times in one block if no one called it for a some time
Jul '22
high
[PNM-001] `PARENT_CANNOT_CONTROL` can be bypassed by maliciously unwrapping parent node
medium
transfer() depends on gas consts
medium
ERC1155Fuse: `_transfer` does not revert when sent to the old owner
medium
BytesUtils: compare will not revert when the offset and len exceeds the bytes lengths
medium
Incorrect implementation of `RRUtils.serialNumberGte`
high
Any fractions deposited into any proposal can be stolen at any time until it is commited
high
Vault implementation can be destroyed leading to loss of all assets
high
Fund will be stuck if a buyout is started while there are pending migration proposals
high
Steal NFTs from a Vault, and ETH + Fractional tokens from users.
high
Cash-out from a successful buyout allows an attacker to drain Ether from the `Buyout` contract
high
Malicious User Could Burn The Assets After A Successful Migration
high
Migration Module: Re-enter `commit` using custom token
medium
`fallback()` function can bypass permission/auth checks imposed in `execute()`
medium
Buyout Module: `redeem`ing before the update of totalSupply will make buyout's current state success
Jun '22
high
Fee is being deducted when Put is expired and not when it is exercised.
high
Create a short call order with non empty floor makes the option impossible to exercise and withdraw
medium
Put option sellers can prevent exercise by specifying zero amounts, or non-existant tokens
medium
`fillOrder()` and `exercise()` may lock Ether sent to the contract, forever
May '22