Platform: Code4rena
Start Date: 10/11/2023
Pot Size: $28,000 USDC
Total HM: 5
Participants: 185
Period: 5 days
Judge: 0xDjango
Id: 305
League: ETH
Rank: 156/185
Findings: 1
Award: $2.76
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: m_Rassska
Also found by: 0x1337, 0xAadi, 0xHelium, 0xLeveler, 0xblackskull, 0xbrett8571, 0xepley, 0xffchain, 0xluckhu, 0xmystery, 0xrugpull_detector, 0xvj, ABAIKUNANBAEV, Aamir, AerialRaider, Amithuddar, Bauchibred, Bauer, CatsSecurity, Cryptor, Daniel526, Draiakoo, Eigenvectors, ElCid, GREY-HAWK-REACH, Inspecktor, Juntao, King_, LinKenji, Madalad, MaslarovK, Matin, MatricksDeCoder, McToady, Noro, PENGUN, Pechenite, Phantasmagoria, RaoulSchaffranek, SBSecurity, SandNallani, Shaheen, Soul22, Stormreckson, T1MOH, Tadev, TeamSS, TheSchnilch, Topmark, Tumelo_Crypto, Udsen, Yanchuan, ZanyBonzy, _thanos1, adeolu, adriro, alexfilippov314, almurhasan, amaechieth, anarcheuz, ayden, baice, bareli, boredpukar, bronze_pickaxe, btk, cartlex_, catellatech, chaduke, cheatc0d3, circlelooper, codynhat, crack-the-kelp, critical-or-high, debo, deepkin, desaperh, dipp, eeshenggoh, evmboi32, ge6a, gesha17, glcanvas, gumgumzum, hals, hihen, hunter_w3b, jasonxiale, joaovwfreire, ke1caM, leegh, lsaudit, marchev, merlinboii, niser93, osmanozdemir1, paritomarrr, passion, pep7siup, phoenixV110, pipidu83, poneta, ro1sharkm, rouhsamad, rvierdiiev, sakshamguruji, seerether, shealtielanz, soliditytaker, spark, squeaky_cactus, stackachu, supersizer0x, tallo, taner2344, turvy_fuzz, twcctop, ubl4nk, wisdomn_, xAriextz, zach, zhaojie, zhaojohnson, ziyou-
2.7592 USDC - $2.76
https://github.com/code-423n4/2023-11-kelp/blob/f751d7594051c0766c7ecd1e68daeb0661e43ee3/src/oracles/ChainlinkPriceOracle.sol#L37 https://github.com/code-423n4/2023-11-kelp/blob/f751d7594051c0766c7ecd1e68daeb0661e43ee3/src/LRTDepositPool.sol#L109
Lack fallback for price feed Oracle leads to errors or zero prices puts protocol at risk and unexpected and undesirable behaviour
function getAssetPrice(address asset) external view onlySupportedAsset(asset) returns (uint256) { return AggregatorInterface(assetPriceFeed[asset]).latestAnswer(); }
The asset price only relies on the Chainlink Oracle which can be down, or provide wrong answers if minAnswer or maxAnswer reached or return 0 price if no answer reached. This implies users cant exchange tokens or exchange tokens at unfair rates or can mint zero rsETH
Manual Analysis, Past Reports
Make use of backup like Uniswap TWAP as prices for the assets in system like stETH are available. Therefore fallback prices can be used in the case of challenges with Chainlink prices
Other
#0 - c4-pre-sort
2023-11-16T03:53:27Z
raymondfam marked the issue as sufficient quality report
#1 - c4-pre-sort
2023-11-16T03:53:36Z
raymondfam marked the issue as duplicate of #32
#2 - c4-pre-sort
2023-11-17T05:23:54Z
raymondfam marked the issue as not a duplicate
#3 - c4-pre-sort
2023-11-17T05:24:04Z
raymondfam marked the issue as duplicate of #194
#4 - c4-pre-sort
2023-11-17T07:36:35Z
raymondfam marked the issue as duplicate of #723
#5 - c4-judge
2023-12-01T17:38:31Z
fatherGoose1 changed the severity to QA (Quality Assurance)
#6 - c4-judge
2023-12-01T18:42:38Z
fatherGoose1 marked the issue as grade-b