FEI and TRIBE Redemption contest - bobirichman's results

A new DeFi primitive that allows any token to become productive and provide FEI liquidity at no cost to the markets that need it most.

General Information

Platform: Code4rena

Start Date: 09/09/2022

Pot Size: $42,000 USDC

Total HM: 2

Participants: 101

Period: 3 days

Judge: hickuphh3

Total Solo HM: 2

Id: 161

League: ETH

Tribe

Findings Distribution

Researcher Performance

Rank: 57/101

Findings: 1

Award: $33.58

🌟 Selected for report: 0

🚀 Solo Findings: 0

QA REPORT

[LOW] Use mult before div

To improve the following calculations precision consider changing the order of the operations such that multiplications come before divisions.

Proof of concept:

[LOW] In the following functions consider verifying the fee parameter

Where the fee parameter validation is checking greater than 0% (which may happen by mistake) and less than 100%

Proof of concept:

[LOW] SafeMath should be used in versions < 0.8

In the following contracts there is a mathematical operation that may overflow. Using safemath would revert the transaction in that case.

Example: DSTest.sol

[LOW] Use safeApprove

Use safeApprove in the following locations

Proof of concept:

[LOW] Missing pause functionality

Proof of concept:

[LOW] Missing nonReentrancy modifier

The following functions allows attackers to try reentrancy since they are calling to external contracts / transferring eth. Consider adding a nonReentrancy modifier.

Proof of concept:

[LOW] Not verified input

At the following functions you should verify the parameters that are being assigned to a state variable.

Proof of concept:

[LOW] Consider using the return value of approve functions

The approve function may return a failure value which should be handled.

Proof of concept:

[LOW] Approve 0 first

At some tokens you can approve an amount (at USDT for instance) only after approving to 0. Consider using increase/decrease approve notation instead.

Proof of concept:

[LOW] Consider replacing assert with require

Assertions are a bad practice, use require instead.

Proof of concept:

[NON CRITICAL] Unused function parameters should have name removed

If for any reason the following unused parameters are necessary then remove their naming (since only the type matters for function signature)

Proof of concept:

[NON CRITICAL] Missing function spec comments

Proof of concept:

[NON CRITICAL] NonReentrancy should be the first modifier in order

Proof of concept:

[NON CRITICAL] The following events are not indexed

Proof of concept:

[NON CRITICAL] Floating pragma

Floating pragma is a bad practice, since it does not guaranty the same version at future deployments.

Proof of concept:

[NON CRITICAL] Consider emitting an event at the following functions

Proof of concept:

#0 - HickupHH3

2022-10-05T05:47:23Z

Substantial issues flagged had to do with files that were OOS.

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter