Payouts
1st Places
2nd Places
3rd Places
All
Sherlock
Code4rena
Cantina
CodeHawks
Hats Finance
Jan '25
medium
Jul '24
high
User may lose funds when creating Nexus account or executing user operations
high
Registry is never called when setting up modules using the `Bootstrap` contract
high
Installing validators with enable mode in `validateUserOp()` doesn't check `moduleType`
high
Missing nonce in `_getEnableModeDataHash()` allows signature replay
medium
Protocol not fully compliant with `EIP-7579`
low
`Nexus.validateUserOp()` violates the EIP-4337 specification
low
Missing `_isInitialized(msg.sender)` check in `K1Validator.transferOwnership()`
May '24
high
high
high
medium
medium
medium
medium
medium
medium
medium
medium
medium
high
`DrawManager.finishDraw()` might allocate more rewards than the reserve amount to draws
medium
Use of `.transfer()` in `Requestor.withdraw()` will not work on zkSync
medium
Draws can be retried even if a random number is available or the current draw has finished
medium
`drawTimeoutAt()` causes the prize pool to shutdown one draw earlier
medium
`try/catch` in `Claimer._claim()` allows users to steal gas from claimer bots
medium
Price formula in `TpdaLiquidationPair._computePrice()` does not account for a jump in liquidatable balance
medium
`TpdaLiquidationPair.swapExactAmountOut()` can be DOSed by a vault's mint limit
Mar '24
Nov '23
high
medium
medium
Oct '23
high
Borrower has no way to update `maxTotalSupply` of `market` or close market.
high
`codehash` check in factory contracts does not account for non-empty addresses
high
Borrower can drain all funds of a sanctioned lender
medium
Function WildcatMarketController.setAnnualInterestBips allows for values outside the factory range
medium
`setAnnualInterestBips()` can be abused to keep a market's reserve ratio at 90%
medium
Removing markets from `WildcatArchController` gives lenders immunity from sanctions
medium
`create2WithStoredInitCode()` does not revert if contract deployment failed
medium
`collectFees()` updates delinquency wrongly as `_writeState()` is called before assets are transferred
medium
Calculation for lender withdrawals in `_applyWithdrawalBatchPayment()` should not round up
medium
Protocol markets are incompatible with rebasing tokens
Aug '23
high
Users can `migrate()` before the first harvest to gain more shares
high
Attacker can leverage flashloans to steal rewards from vaults
medium
EIP-712 typehash is incorrect in `KeeperRewards.sol` and `KeeperValidators.sol`
medium
`enterExitQueue()` might be uncallable if the vault experiences a huge loss
high
Signatures can be replayed in `castVoteWithReasonAndParamsBySig()` to use up more votes than a user intended
medium
Incorrect initialization of `SecurityCouncilMemberRemovalGovernor` contract
medium
SecurityCouncilNomineeElectionGovernor might have to wait for more than 6 months to create election again
medium
`SecurityCouncilMemberElectionGovernor` Owner Can Change `votingPeriod` During an Active Election
Jul '23
medium
Token guardian protection doesn't account for approved operators in `approve()`
medium
EIP-712 typehash is incorrect for several functions in `MetaTxLib`
medium
Inconsistent encoding of arrays in `MetaTxLib`
medium
Whitelisted profile creators could accidentally break migration for V1 profiles
medium
Users can unfollow through `FollowNFT` contract when LensHub is paused by governance
medium
Users cannot unfollow if they do not own the FollowNFT of the `followTokenId` used for their profile
medium
`tryMigrate()` doesn't ensure that `followerProfileId` isn't already following
medium
Identifying publications using its ID makes the protocol vulnerable to blockchain re-orgs
Jun '23
medium
`LSP8CompatibleERC721`'s `approve()` deviates from ERC-721 specification
medium
`LSP8Burnable` extension incorrectly inherits `LSP8IdentifiableDigitalAssetCore`
medium
LSP8 and LSP9's ERC-165 interface ID differs from their specification
medium
Two-step ownership transfer process in `LSP0ERC725AccountCore` can be bypassed
medium
The owner of a `LSP0ERC725Account` can become the owner again after renouncing ownership
medium
Permission escalation by adding the same permission twice
May '23
Apr '23
high
Anyone can commit collateral on behalf of borrowers for pending bids
medium
Anyone can claim defaulted loan's collateral on behalf of lender
medium
Lenders can steal collateral from liquidators if no-revert-on-failure tokens are used
medium
Protocol does not support fee-on-transfer tokens
medium
Market owners can manipulate marketplace fee to steal principal from borrowers
medium
Changing `lenderManager` to a new address will break `getLoanLender()`
Mar '23
high
A temporary issue shows in the staking functionality which leads to the users receiving less minted tokens.
high
An attacker can manipulate the preDepositvePrice to steal from other users.
high
Staking, unstaking and rebalanceToWeight can be sandwiched (Mainly rETH deposit )
high
Reth.sol: Withdrawals are unreliable and depend on excess RocketDepositPool balance which can brick the whole protocol
high
`WstEth` derivative assumes a ~1=1 peg of stETH to ETH
medium
DoS due to external call failure
medium
Missing derivative limit and deposit availability checks will revert the whole `stake()` function
Feb '23
Oct '22
Sep '22
Aug '22
Jul '22
Jun '22
May '22
medium
Use safeTransferFrom instead of transferFrom for ERC721 transfers
medium
Owner can set the feeRate to be greater than 100% and cause all future calls to `exercise` to revert
medium
Vault is Not Compatible with Fee Tokens and Vaults with Such Tokens Could Be Exploited
medium
User's may accidentally overpay in `buyOption()` and the excess will be paid to the vault creator