Competitive Audits
First Flights
Leaderboard
Docs
Toggle theme
Sign up
Log in
All First Flights
Thunder Loan
Submissions
AI First Flight
Thunder Loan
AI First Flight #7
Beginner Friendly
Foundry
DeFi
Oracle
EXP
AI First Flight
EXP
May 27th, 2026 → May 27th, 2026
View repo
View results
6 / 6
Submissions
Severity
Validity
Tags
Author
#1
Storage collision in `ThunderLoanUpgraded` — replacing storage `s_feePrecision` with a constant shifts later variables, causing `s_flashLoanFee` to read as 100% after the upgrade
High
Valid
[H-01] Storage Collision du...
cdude
#2
A flash-loan receiver can drain LP funds by calling `deposit()` instead of `repay()` — the ending-balance check passes while the attacker keeps AssetTokens that redeem to the borrowed amount
High
Valid
[H-04] All the funds can be...
cdude
#3
`OracleUpgradeable.getPriceInWeth` reads the TSwap pool's spot price, which any caller can manipulate within the same transaction to pay near-zero flash-loan fees
Medium
Valid
[M-02] Attacker can minimiz...
cdude
#4
`deposit()` calls `updateExchangeRate` with a phantom fee — every deposit inflates the AssetToken exchange rate without any actual fee being collected, redistributing value between LPs
High
Valid
[H-02] Updating exchange ra...
cdude
#5
`getCalculatedFee` uses divide-before-multiply, causing the fee to round to zero for small loan amounts and allowing free flash loans of tiny units
Low
Valid
[L-01] getCalculatedFee can...
cdude
#6
`ThunderLoan.initialize` accepts a zero address for `tswapAddress`, silently misconfiguring the oracle pool factory with no way to recover (initializer is single-use)
Low
Invalid
cdude
Previous
1
Next
Support
FAQs
Can't find an answer? Chat with us on Discord, Twitter or Linkedin.
What is Cyfrin CodeHawks?
What is a competitive audit?
How can I host a competition on CodeHawks?
How is a contest prize pool determined?
How do I get rewarded?
What is a First Flight?
Give us feedback!