bunker.finance contest - hake's results

The easiest way to borrow against your NFTs.

General Information

Platform: Code4rena

Start Date: 03/05/2022

Pot Size: $50,000 USDC

Total HM: 4

Participants: 46

Period: 5 days

Judge: gzeon

Total Solo HM: 2

Id: 117

League: ETH

bunker.finance

Findings Distribution

Researcher Performance

Rank: 17/46

Findings: 1

Award: $298.58

🌟 Selected for report: 0

🚀 Solo Findings: 0

Findings Information

🌟 Selected for report: cccz

Also found by: 0x1f8b, 0xNazgul, GimelSec, IllIllI, Ruhum, hake, kebabsec, oyc_109, sorrynotsorry, throttle, tintin

Labels

bug
duplicate
2 (Med Risk)

Awards

298.5767 USDC - $298.58

External Links

Lines of code

PriceOracleImplementation.sol#L29-L31

Vulnerability details

Impact

latestAnswer function is deprecated. This function does not revert if no answer has been reached but returns zero. There is no check for stale price and round completeness. Price can be stale and lead to wrong return value.

Proof of Concept

Chainlink API Reference

int256 usdcPrice = ChainlinkFeed(0x986b5E1e1755e3C2440e960477f25201B0a8bbD4).latestAnswer(); if (usdcPrice <= 0) { return 0; }

Use latestRoundData instead as well as performing more thorough check on return data. Secondly, update compiler version pragma solidity ^0.5.16 to latest compiler version for better compatibility with modern Chainlink methods.

(uint80 roundID, int256 price, , uint256 timeStamp, uint80 answeredInRound) = oracle.latestRoundData();
require(usdcPrice > 0, "...");
require(answeredInRound >= roundID, "...");
require(timeStamp != 0, "...");

#0 - bunkerfinance-dev

2022-05-07T22:03:00Z

Duplicate of #1

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