High
Solo
Total
Medium
Solo
Total
Total Earnings
#7 All Time
Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
CodeHawks
Sep '24
Mar '24
Feb '24
high
high
high
high
high
high
high
high
high
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
Jan '24
high
high
high
high
high
high
medium
medium
medium
medium
medium
medium
medium
medium
Sep '23
high
integer overflow in slice()
medium
Contract interfaces allow nonpayable implementations of payable functions
medium
Slice bounds check can be overflowed to access unrelated data
medium
External calls can overflow return data to return input buffer
low
Builtins that access literal lists cannot be compiled
low
Tuple constants are deleted during folding, breaking compilation
low
Gas cost estimates incorrect due to rounding in `calc_mem_gas()`
low
Incorrect gas estimate for BALANCE opcode
low
SHA256 built-in will return input value on chains without SHA256 precompile
low
Fang optimization options broken
low
`_bytes_to_num()` skips `ensure_in_memory()` check, which can lead to compilation failure
low
Built-in `shift()` function will fail if passed a negative integer at compile time
low
Compiled opcodes will return wrong values for PUSH instructions due to incorrect padding
low
Wrong denominations included in reserved keywords
Apr '23
medium
Oracle tick rounding the wrong direction can lead to Swapper overpaying for swap
medium
Tokens without UniV3 pairs with `tokenToBeneficiary` can be stolen by an attacker
medium
WalletImpl cannot receive NFTs as intended
medium
Swapper mechanism cannot incentivize ETH-WETH swaps without risking owner funds
medium
SwapperCallbackValidation doesn't do anything, opens up users to having contracts drained
Mar '23
Feb '23
high
Unlinked tophat retains linkedTreeRequests, can be rugged
high
Safe can be bricked because threshold is updated with validSignerCount instead of newThreshold
high
Signers can bypass checks to add new modules to a safe by abusing reentrancy
high
If another module adds a module, the safe will be bricked
high
Other module can add owners to safe that push us above maxSigners, bricking safe
high
Signers can brick safe by adding unlimited additional signers while avoiding checks
high
Signers can bypass checks and change threshold within a transaction
medium
Owners of linkedin tophats cannot have eligibility revoked
medium
Changing hat toggle address can lead to unexpected changes in status
medium
targetThreshold can be set below minThreshold, violating important invariant
medium
Swap Signer fails if final owner is invalid due to off by one error in loop
medium
If a hat is owned by address(0), phony signatures will be accepted by the safe
medium
If signer gate is deployed to safe with more than 5 existing modules, safe will be bricked
medium
Safe threshold can be set above target threshold, causing transactions to revert
medium
Can get around hats per level constraints using phantom levels
high
Users can be liquidated prematurely because calculation understates value of underlying position
high
Liquidator can take all collateral and underlying tokens for a fraction of the correct price
high
Users can get around MaxLTV because of lack of strategyId validation
high
LP tokens are not sent back to withdrawing user
high
IchiLPOracle does not use correct LP Pricing, vulnerable to flash loan attack
high
Users who deposit extra funds into their Ichi farming positions will lose all their ICHI rewards
medium
Check for stale data before trusting Chainlink's response
medium
Withdrawals from IchiVaultSpell have no slippage protection so can be frontrun, stealing all user funds
medium
HardVault never deposits assets to Compound
medium
LP tokens cannot be valued because ICHI cannot be priced by oracle, causing all new open positions to revert
medium
Complete debt size is not paid off for fee on transfer tokens, but users aren't warned
medium
totalLend isn't updated on liquidation, leading to permanently inflated value
medium
If a token's oracle goes down or price falls to zero, liquidations will be frozen
Jan '23
high
Malicious user can finalize other’s withdrawal with less than specified gas limit, leading to loss of funds
high
Withdrawals with high gas limits can be bricked by a malicious user, permanently locking funds
medium
Migration can be bricked by sending a message directly to the LegacyMessagePasser
medium
Censorship resistance is undermined and bridging of assets can be DOSed at low cost
medium
Batcher frames are incorrectly decoded leading to consensus split
high
Attacker can take loan for Victim
high
Anyone can wipe complete state of any collateral at any point
high
Borrower can use liquidationInitialAsk to block future borrowers
high
Buying out corrupts the slope of a vault, reducing rewards of LPs
high
Vault may be drained after a liquidated NFT was claimed by the liquidator
high
ERC4626Cloned deposit and mint logic differ on first deposit
high
Deadlock in valuts with underlying token with less then 18 decimals
medium
Users can liquidate themselves before others, allowing them to take 13% above their borrowers
medium
Users are forced to approve Router for full collection to use commitToLiens() function
medium
Position not deleted after debt paid.
medium
WithdrawProxy allows redeem() to be called before withdraw reserves are transferred in
medium
Overflow potential in processEpoch()
medium
minDepositAmount is unnecessarily high, can price out many users
medium
Processing an epoch must be done in a timely manner, but can be halted by non liquidated expired liens
medium
Lack of support for fee-on-transfer token
Dec '22
Findings not publicly available for private contests.
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
Unsafe downcasting operation truncate user's input
medium
Escher721 contract does not have setTokenRoyalty function
medium
Use of `payable.transfer()` Might Render ETH Impossible to Withdraw
Nov '22
high
Non terminal tokens received via Balancer batchSwap are not accounted for
medium
Curve LP staking allows adding false tokensIn to account by setting _claim_rewards to false
medium
Curve LP Controller withdraw and claim function uses wrong signature
medium
No check for active Arbitrum Sequencer in WSTETH Oracle
medium
User can trade away an asset using Balancer batchSwap without removing it from account
Oct '22
high
isValidRefinance will approve invalid refinances and reject valid refinances due to buggy math
high
isValidRefinance checks both conditions instead of one, leading to rejection of valid refinances
high
Liens do not reset payee after buyout
high
Payments made for all liens on a collateral token will only pay the first lien
high
_deleteLienPosition() function is public
high
liquidationAccountant can be claimed at any time
high
liquidationAccountant can be claimed multiple times, losing a portion of all vault holders' funds
high
Claiming liquidationAccountant will reduce vault y-intercept by more than the correct amount
high
Strategists are paid 10x the vault fee because of a math error
high
Auctions can end in epoch after intended, underpaying withdrawers
high
Any public vault without a delegate can be drained
high
nlrType type is not signed by strategist, which could allow fraudulent behavior as new types are added
high
maxPotentialDebt can be exceeded due to faulty calculation
medium
createAuction sets firstBidTime as time of creation rather than first bid
medium
Bids cannot be created within timeBuffer of completion of a max duration auction
medium
Vault Fee uses incorrect offset leading to wildly incorrect value, allowing strategists to steal all funds
medium
_getInterest() function uses block.timestamp instead of the inputted timestamp
medium
_payment() function transfers full paymentAmount, overpaying first liens
medium
timeToEpochEnd calculates backwards, breaking protocol math
medium
_validateCommitment fails for approved operators
Sep '22
Aug '22
high
First depositor into each LToken can break share calculation and steal funds
medium
Uniswap contract added to controller doesn't match with function signatures
medium
Chainlink oracle price data could be stale
medium
LTokens will not work with fee-on-transfer tokens
medium
Missing revert keyword
medium
Users can avert liquidation by getting blacklisted in USDC or USDT
Jul '22
Jun '22
Apr '22
Mar '22