https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/defaults/default_avatar_9.png

neocrao

Security Researcher

Contact Me

High

6

Total

Medium

8

Total

$468.00

Total Earnings

#1442 All Time

12x

Payouts

silver

1x

2nd Places

bronze

1x

3rd Places

regular

2x

Top 10

All

Sherlock

Code4rena

CodeHawks

Apr '24

DYAD

DYAD

0.28 USDC • 1 total finding • Code4rena • neocrao

#113

high

Design flaw and mismanagement in vault licensing leads to double counting in collateral ratios and positions collateralized entirely with kerosine

Mar '24

RadicalxChange

RadicalxChange

1.18 USDC • 1 total finding • Sherlock • neocrao

bronze

high

The winning bidder can close all bids and still win the token without paying anything. Furthermore, a very high bid will cause monetary loss to other bidders as they will need to cover the bidding fee.

Telcoin Platform Audit Update

Telcoin Platform Audit Update

228.70 USDC • 1 total finding • Sherlock • neocrao

silver

medium

Blacklisted User can still interact with Stablecoin

Feb '24

AI Arena

AI Arena

2.06 USDC • 1 total finding • Code4rena • neocrao

#157

high

Malicious user can stake an amount which causes zero curStakeAtRisk on a loss but equal rewardPoints to a fair user on a win

Jan '24

Salty.IO

Salty.IO

10.87 USDC • 2 total findings • Code4rena • neocrao

#113

medium

Remove Liquidity has missing reserve1 DUST check, which can make reserve1 to be less than DUST

medium

Impossible to change managed wallets with `proposeWallets` after first rejection

Dec '23

The Standard

The Standard

32.18 USDC • 2 total findings • CodeHawks • neocrao

#46

high

Rewards can be drained because of lack of access control

medium

Users can not remove some amount of collateral from contract because of wrong implementation of "canRemoveCollateral()"

Revolution Protocol

Revolution Protocol

1.34 USDC • 1 total finding • Code4rena • neocrao

#75

medium

Bidder can use donations to get VerbsToken from auction that already ended.

Ethereum Credit Guild

Ethereum Credit Guild

39.54 USDC • 1 total finding • Code4rena • neocrao

#78

medium

LendingTerm::debtCeiling() can return wrong debt as the min() is evaluated incorrectly

Nov '23

Canto Application Specific Dollars and Bonding Curves for 1155s

Canto Application Specific Dollars and Bonding Curves for 1155s

1.37 USDC • 1 total finding • Code4rena • neocrao

#31

medium

No slippage protection for Market functions

Jul '23

Beedle - Oracle free perpetual lending

Beedle - Oracle free perpetual lending

21.58 USDC • 18 total findings • CodeHawks • neocrao

#115

high

[H-04] Lender#buyLoan - Malicious user could take over a loan for free without having a pool because of wrong access control

low

Zero address leads to transaction reverts

low

Lender fails to giveLoan because of inconsistent length between `loadIds` and `poolIds`

gas

Multiple accesses of a mapping/array should use a local variable cache.

gas

Uncheck Arithmetic where overflow/underflow impossible

gas

Using Private Rather Than Public For Constants,Saves Gas

gas

Use of magic numbers

gas

Named parameter mappings

gas

For the borrow(), repay() & startAuction() functions in Lender.sol the public visibility modifiers should be changed to external, to help optimize gas usage

gas

Use assembly to check for `address(0)`

gas

NatSpec documentation for function is missing

gas

Large multiples of ten should use scientific notation

gas

Constants in comparisons should appear on the left side

gas

Conformance to Solidity naming conventions

gas

Cache array length outside of loop

gas

Function ordering does not follow the Solidity style guide

gas

Long functions should be refactored into multiple, smaller, functions

gas

Interfaces should be indicated with an `I` prefix in the contract name

Foundry DeFi Stablecoin CodeHawks Audit Contest

Foundry DeFi Stablecoin CodeHawks Audit Contest

77.62 USDC • 9 total findings • CodeHawks • neocrao

#20

high

Liquidation Is Prevented Due To Strict Implementation of Liqudation Bonus

medium

All of the USD pair price feeds doesn't have 8 decimals

gas

Use `==` instead for `<=` for `uints` when comparing for `zero` values

gas

`++i`/`i++` should be `unchecked{++i}`/`unchecked{i++}` when it is not possible for them to overflow, as is the case when used in `for`- and `while`-loops

gas

Constants should be be used for hardcoded values

gas

The nonReentrant modifier should occur before all other modifiers

gas

NatSpec `@return` argument is missing

gas

[I-4] Constants in comparisons should appear on the left side

gas

Use `assembly` to check for `address(0)`

CodeHawks Escrow Contract - Competition Details

CodeHawks Escrow Contract - Competition Details

51.99 USDC • 7 total findings • CodeHawks • neocrao

#44

low

Constructor of `Escrow` should make sure that `buyer`, `seller`, `arbiter` are different from each other.

gas

Use assembly to check for `address(0)`

gas

The `nonReentrant` `modifier` should occur before all other modifiers

gas

NatSpec `@param` is missing

gas

NatSpec `@return` argument is missing

gas

Constants in comparisons should appear on the left side

gas

Add methods to add/update arbiter in existing Escrow contracts