Payouts
2nd Places
3rd Places
Top 10
All
Sherlock
Code4rena
Cantina
CodeHawks
Mar '25
high
medium
Feb '25
Jan '25
high
medium
medium
medium
medium
medium
high
high
high
high
high
medium
medium
medium
medium
Dec '24
high
high
high
Missing reentrancy protection in the OracleLess contract can be used to drain the contract
high
Hash collision of the orderId can lead to fund loss in multiple ways
high
Malicious users can create malicious orders on behalf of users which have approved allowances to the StopLimit/OracleLess contracts
high
Malicious users can drain Bracket.sol's assets through a combination of OracleLess and Bracket dummy/malicious orders
medium
Tokens with blacklist can be used to permanently DoS the OracleLess contract and freeze all funds within it
medium
OracleLess doesn't implement a minimum size order, as well as no maximum pending queue size which can lead to a permanent DoS
Oct '24
medium
high
high
high
medium
medium
medium
medium
medium
Aug '24
high
medium
medium
medium
medium
medium
Jul '24
Jun '24
medium
May '24
high
medium
Apr '24
high
`SNXConnector.sol` TVL calculation is incorrect.
high
`AccountingManager::resetMiddle` will not behave as expected
high
`executeWithdraw` may be blocked if any of the users are blacklisted from the `baseToken`
high
In Dolomite, when opening a borrow position, the holding position in the Registry will never be updated due to the removePosition flag being set to true
medium
`AccountingManager#totalWithdrawnAmount` should reflect tokens actually transferred to users, instead of expected transfers
medium
Withdrawals in AccountManager are prone to DOS attacks.
medium
Base tokens accumulated from withdraw fees can't be transferred to/from the NoyaFeeReceiver and will remain stuck
medium
The total deposit amount limit in `AccountingManager.sol` can be bypassed
medium
Attacker can increase the length of `withdrawQueue` by withdrawing 0 amount of tokens frequently
medium
`performanceFeeReceiver` cannot mint any performance fee shares even if TVL is dropped by only a very tiny amount
medium
lzSend() forwards all of the contract balance as the native gas fee but the excess won't be always returned
medium
If a curve pool which CurveConnector uses is killed the vault manager can't close the position leading to loss of funds
medium
In the `Gearboxv3` connector the health factor of the account is never considered
medium
Maverick Connector uses ETH as liquidity for some of the Maverick pools, but NOYA isn't equipped to handle ETH in its vaults without handling conversion to/from WETH in the connector
medium
Due to missing health factor and hardcoded balance checks on Dolomite, a borrow position can be opened by withdrawing more than the supplied balance leading to possible unwanted liquidations
high
Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine
high
Kerosene collateral is not being moved on liquidation, exposing liquidators to loss
high
Users can get their Kerosene stuck until TVL becomes greater than Dyad's supply
high
Unable to withdraw Kerosene from `vaultmanagerv2::withdraw` as it expects a `vault.oracle()` method which is missing in Kerosene vaults
medium
No incentive to liquidate small positions could result in protocol going underwater
medium
No incentive to liquidate when CR <= 1 as asset received < dyad burned
Mar '24
Feb '24
Jan '24
high
Unrestricted claiming of fees due to missing balance updates in `FeeSplitter`
high
Unauthorized Access to setCurves Function
medium
Curves::_buyCurvesToken(), Excess of Eth received is not refunded back to the user.
medium
If a user sets their curve token symbol as the default one plus the next token counter instance it will render the whole default naming functionality obsolete
Dec '23