VTVL contest - yongskiws's results

Building no-code token management tools to empower web3 founders and investors, starting with token vesting.

General Information

Platform: Code4rena

Start Date: 20/09/2022

Pot Size: $30,000 USDC

Total HM: 12

Participants: 198

Period: 3 days

Judge: 0xean

Total Solo HM: 2

Id: 164

League: ETH

VTVL

Findings Distribution

Researcher Performance

Rank: 151/198

Findings: 1

Award: $18.86

🌟 Selected for report: 0

šŸš€ Solo Findings: 0

Dangerous usage of block.timestamp (timestamp)

āŒā€¢ _referenceTs > _claim.endTimestamp (contracts/VTVLVesting.sol#154) • _referenceTs >= _claim.cliffReleaseTimestamp (contracts/VTVLVesting.sol#160) • _referenceTs > _claim.startTimestamp (contracts/VTVLVesting.sol#166) • (vestAmt > _claim.amountWithdrawn) (contracts/VTVLVesting.sol#187)

āŒā€¢ require(bool,string)(tokenAddress.balanceOf(address(this)) >= numTokensReservedForVesting + allocatedAmount,INSUFFICIENT_BALANCE) (contracts/VTVLVesting.sol#295)

āŒā€¢ require(bool,string)(_claim.amountWithdrawn < finalVestAmt,NO_UNVESTED_AMOUNT) (contracts/VTVLVesting.sol#426)

āŒā€¢ require(bool,string)(allowance > usrClaim.amountWithdrawn,NOTHING_TO_WITHDRAW) (contracts/VTVLVesting.sol#374)

āŒā€¢ require(bool,string)(amountRemaining >= _amountRequested,INSUFFICIENT_BALANCE) (contracts/VTVLVesting.sol#402)

Reentrancy vulnerabilities leading to out-of-order Events

āŒ • tokenAddress.safeTransfer(_msgSender(),amountRemaining) (contracts/VTVLVesting.sol#388) • Claimed(_msgSender(),amountRemaining) (contracts/VTVLVesting.sol#391)

āŒ Reentrancy in VTVLVesting.withdrawAdmin(uint112) (contracts/VTVLVesting.sol:398-411): • tokenAddress.safeTransfer(_msgSender(),_amountRequested) (contracts/VTVLVesting.sol#407) • AdminWithdrawn(_msgSender(),_amountRequested) (contracts/VTVLVesting.sol#410)

Multiple calls in a loop (calls-loop)

āŒ VTVLVesting._createClaimUnchecked(address,uint40,uint40,uint40,uint40,uint112,uint112) (contracts/VTVLVesting.sol:245-304) has external calls inside a loop: require(bool,string)(tokenAddress.balanceOf(address(this)) >= numTokensReservedForVesting + allocatedAmount,INSUFFICIENT_BALANCE) (contracts/VTVLVesting.sol#295)

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