This repository contains a curated list of known smart contract vulnerabilities categorized by their type. Each entry includes a brief description of the vulnerability, its severity, and a link to a detailed report or analysis.
I try to keep adding vulnerabilities as soon as I come across one through solodit, or any other means. That said, it doesn't mean one will find every finding in here. Most of them seemed good so far.
The sole purpose of this repository is just to make white hats (especially me) understand these findings in easy way possible, with the help of AI. Usually, one needs to work around a bit more in order to understand why something is a vulnerability at first place. So, this repository, decodes it in simple form and will definitely prove to useful for me, as far as I am concerned.
And Most importantly, it will create a habit of me to keep reading other auditors' reports!!
Here are the common steps I took in listing these findings:
- First, an obvious step, I went through a vulnerability (let's say from solodit, or any other means) and understood what's going on in here.
- After that the same finding is passed to AI (chatGPT or Grok), and its help is taken to understand it even better.
- Now we know our AI assistant understand it well, all I need to do is pass the template, which contains the following sections:
- Title: Self explanatory
- Some extra meaningful details
- Severity
- Source
- Affected Contract
- Vulnerability Type
- Some early added vulnerabilities might contain the original finding that auditors wrote
- Summary: A straight written summary about the finding
- A Better Explanation (With Simplified Example)
- Intended Behavior: What should happen
- What Actually Happens (Bug)
- Why This Matters: Impact
- Concrete Walkthrough: The simplified example, it helps sometimes
- Vulnerable Code Reference
- Recommended Mitigation
- Pattern Recognition Notes: Really Important!!
- Quick Recall (TL;DR): Only latest added findings contains this section
- Next, the generated finding by AI is usually checked and thus been added under the relevant category.
- Each category contains a table for easier accessibility.
| Protocol | Vulnerability | Severity | Source |
|---|---|---|---|
| Alchemix | Unauthorized Reward Token Injection via notifyRewardAmount in Alchemix Bribe Contract |
Medium | Immunefi |
| BakerFi | Arbitrary originalAmount in Flash Loan Data Allows Logic Manipulation |
Medium | Code4rena |
| Escher | Sale Finalization Failure Due to Deprecated selfdestruct Semantics in Escher FixedPrice & OpenEdition |
Medium | Code4rena |
| Karak | Unslashable NativeVault via Unvalidated extraData and Unrestricted Manager Upgrade |
High | Code4rena |
| MonoX | Unauthorized Pool Price Manipulation via Missing Access Control in Monoswap | High | Solodit (Halborn) |
| Stader | Loss of Admin via Self-Assignment in updateAdmin (Role Revocation Bug) |
Medium | Code4rena |
| Stader | Permissionless Reward Drain Allows Unfair Operator Slashing in ValidatorWithdrawalVault | Medium | Code4rena |
| Virtuals Protocol | ContributionNft Mint Abuse via Unrestricted Proposer Control | Medium | Code4rena |
| Protocol | Vulnerability | Severity | Source |
|---|---|---|---|
| Alchemix | Zero-Supply Proposal Spam in AlchemixGovernor (Griefing Attack) | Medium | Solodit (Immunefi) |
| Ethereum Credit Guild | Cheap Governance Manipulation via PSM Unlimited Minting | Medium | Code4rena |
| Salty | Vote Inflation via SALT Recycling in Proposals.sol | Medium | Code4rena |
| Protocol | Vulnerability | Severity | Source |
|---|---|---|---|
| AI Arena | NFT Attribute Manipulation via onERC721Received Hook Revert | Medium | Code4rena |
| Protocol | Vulnerability | Severity | Source |
|---|---|---|---|
| Angle | Invalid Input Validation Leading to Slippage/Token Order Mismatch | Medium | Code4rena |
| Livepeer Protocol | Incorrect Vote Deduction in Livepeer Governance System | High | Code4rena |
| Maia | Crossโchain DepositNonce Poisoning โ retrieveDeposit() allows arbitrary nonces to be marked executed |
High | Code4rena |
| Nextgen | Double Royalty Payout Due to Faulty Split Logic in NextGen Minter Contract | Medium | Code4rena |
| Olympus | Oracle-Based Post-Exit Skim Nullifies User Slippage Protection in BLVaultLido |
High | Sherlock Audit |
| Panoptic | Duplicate TokenId fingerprint collision โ solvency bypass in PanopticPool.sol |
Medium | Code4rena |
| Lindy Labs Sandlock | Flash-Loan Fee Ignorance Leading to Rebalance & Withdraw DoS in Sandclock Vaults | High | Solodit |
| Venus | Fragile Liquidation Check in Comptroller.sol โ Zero Borrow Balance Requirement |
Medium | Code4rena |
| Protocol | Vulnerability | Severity | Source |
|---|---|---|---|
| Isomorph | Bad Debt Persistence via Truncation Mismatch in Isomorph Velo Vault | Medium | Sherlock Audits |
| Munchables | Asset Freezing via Flawed Reward Penalty Calculation in LandManager | High | Code4rena |
| Ostium | Wrong Collateral Refund in Liquidation (liqPrice == priceAfterImpact) |
Medium | Pashov Audit Group |
| PrePO | Zero-Share Mint via Total Asset Inflation in Collateral.sol |
High | Code4rena |
| Rigor | Rounding Error Interest Loss via Day-Truncation in Interest Calculation | High | OpenCoreCh's Report |
| Size | Liquidation Profit Underflow via Decimal Mismatch in Collateral-Debt Conversion | High | Code4rena |
| Terplayer | Withdrawal Underflow via Self-Delegation and Ceiling Division in BVT Reward Vault | Critical | Shieldify Audits |
| Traitforge | Age Underestimation Due to Early Integer Division in calculateAge() |
Medium | Code4rena |
| Protocol | Vulnerability | Severity | Source |
|---|---|---|---|
| Angle Protocol | Reentrancy-Based Reward Inflation via Collateral Ratio Manipulation in Angle Transmuter | Medium | Code4rena |
| Itos | Self-Transfer Settlement Bypass in reentrantSettle |
High | Pashov Audit Group |
| Panoptic | Reentrancy in SemiFungiblePositionManager via ERC777 tokensToSend Hook |
High | Code4rena |
| ReNFT | Reentrancy via safeTransferFrom Callback in PAY Rentals |
Medium | Code4rena |
| ReNFT | reNFT โ ERC1155 Hijack via Reentrancy / TOCTOU (rentedAssets) | High | Code4rena |
| Protocol | Vulnerability | Severity | Source |
|---|---|---|---|
| Basin | Immutable BLOCK_TIME Parameter Cause Oracle Flaws | Medium | Code4rena |
| Frankencoin | Inaccurate Holding Duration on Optimism Due to block.number Usage in Equity.sol |
Medium | Code4rena |
| Karak | Unfair Withdrawal Slashing During Veto Window in Karak Vaults | Medium | Code4rena |
| Renzo | L1โL2 Price Update Reverts Due to Cross-Chain Timestamp Mismatch | Medium | Code4rena |
| Verwa | Permanent Lock via Expired-Lock Undelegation Restriction in VotingEscrow | High | Code4rena |
| Protocol | Vulnerability | Type | Severity | Source |
|---|---|---|---|---|
| Arbitrum | Signature Replay in Split-Voting Governor Elections | Signature Replay / Missing Nonce / Authorization Bypass | High | Code4rena |
| Cap | Missing Slippage Protection in Liquidation Allows Unexpected Collateral Loss | Missing Slippage Protection / Value Mismatch in Liquidation | Medium | Sherlock |
| Goodentry | Unchecked Call Return Value in ETH Transfers | call/delegatecall - Unchecked Return Value | Medium | Code4rena |
| OpenSea | Partial Order Fulfillment Discount via Low-Decimal ERC20 in BasicOrderFulfiller |
Precision Loss / Partial Payment Exploit | Medium | Code4rena |
| Optimism | Incorrect DISPUTED_L2_BLOCK_NUMBER Causes Cross-Game Context Collisions & Invalid VM Outcomes | Incorrect State Context / Fault Proof Misdirection / Cross-Game Inconsistency | High | Code4rena |
| Stader | Consensus Stall via Strict Equality in StaderOracle Submissions | Logic Error / Consensus Liveness Failure | Medium | Code4rena |
| Y2K Finance | EIP-4626 Interface Mismatch Causing Potential Integration Breakage in SemiFungibleVault | Standards Non-Compliance / Composability Risk / Integration Inconsistency | High | Code4rena |
| Protocol | Vulnerability | Type | Severity | Source |
|---|---|---|---|---|
| Curve | Curve LP Oracle Manipulation via Read-Only Reentrancy | Oracle Manipulation / Read-Only Reentrancy | High | ChainSecurity |
| Sushi (Miso) | ETH Double-Spend & Refund Exploit via BoringBatchable in MISO Auction | Value Reuse / Accounting Manipulation / Refund Exploit | Critical | Samczun's blog |