Checklists/EVM/AMM Price & Oracle Security

AMM Price & Oracle Security Checklist

Security checks for AMM price mechanisms, TWAP oracles, and price manipulation defenses. 30 security checks derived from 1,327 real audit findings. Covering TWAP Oracle Security, Price Manipulation, Spot Price Risks, External Oracle Integration, Price Impact & Slippage, and Bonding Curve Math.

Threat Analysis

Key statistics from analyzing 1,327 audit findings:

1,327 findings analyzed from real smart contract audits across major DeFi protocols

30 vulnerability patterns identified and categorized across 6 security domains

19 Critical/High items require immediate attention in any audit

📄
Want this as a PDF? DM me on Telegram →
Showing 30 of 30 vulnerabilities
#1

Missing Slippage Protection in Liquidity Operations

High

Liquidity entry, exit, and zap functions lack slippage checks, enabling sandwich attacks during LP operations

#2

Missing Slippage Protection in Swap Functions

High

Swap functions execute without minimum output amount validation, enabling MEV exploitation

#3

Hardcoded or Zero Slippage Tolerance

Medium

Contracts use hardcoded zero slippage or pass amountOutMin=0, accepting any output amount

#4

Oracle Price Manipulation via Pool Reserves

High

Token prices calculated from AMM pool reserves can be manipulated by attackers using flash loans

#5

Price Manipulation via Liquidity Control

High

Attackers manipulate token prices by controlling liquidity or exploiting on-chain price mechanisms

#6

Missing Minimum Return Amount in Trades

High

Contracts lack minimum return amount checks, allowing MEV searchers to extract value

#7

Front-Running via User-Specified Slippage

High

User-specified slippage parameters visible on-chain enable targeted front-running attacks

#8

Missing Sell-Side Slippage Protection

High

Sell functions specifically lack slippage protection, enabling price manipulation during exits

#9

Missing Price Feed Validation

Medium

Oracle contracts retrieve prices without validating data integrity, timestamps, or source authenticity

#10

Incorrect Price Feed Decimals Handling

Medium

Miscalculations occur when price feed decimals are not properly validated or normalized

#11

Price Feed Manipulation via Stale or Manipulable Data

High

Price feeds can be manipulated to affect trading and liquidation logic

#12

Incorrect Spot Price Calculations

High

Flawed price calculation logic in functions like _calcSpotPrice or getAmountOut leads to inaccurate valuations

#13

Incorrect Swap Direction Calculation

Medium

Flawed logic in determining swap direction can cause incorrect token routing

#14

Stale Oracle Price Data

High

Oracle returns outdated price data without staleness validation checks

#15

Deprecated or Unreliable Chainlink Feeds

Medium

Using deprecated Chainlink feeds or constant stale thresholds can return invalid prices

#16

Missing Sequencer Downtime Validation

Medium

Oracle functions fail to check L2 sequencer status before fetching prices

#17

Unvalidated External Oracle Data

Medium

External oracle data used without correctness validation or fallback mechanisms

#18

TWAP Oracle Manipulation in Low-Liquidity Pools

High

Uniswap V3 TWAP oracles can be manipulated when pool liquidity is low

#19

Spot Prices Used Instead of TWAP

High

Using spot prices instead of time-weighted averages makes oracle values flash-loan manipulable

#20

Incorrect Token Ordering in TWAP Registration

High

TWAPOracle registers pairs with wrong token order, causing inverted prices

#21

Stale TWAP Prices from Infrequent Updates

High

TWAP oracles return outdated prices when updates are infrequent or during sequencer downtime

#22

Flawed TWAP Implementation Enables Manipulation

High

Ineffective TWAP calculations with insufficient windows allow price manipulation within bounds

#23

Amplification Parameter Manipulation

High

Incorrect pricing due to amplification parameter updates in StableSwap-style pools

#24

Bonding Curve Parameter Validation

High

Missing validation for bonding curve parameters can cause division by zero or overflows

#25

Arbitrary Curve Implementation Risk

Medium

Allowing arbitrary curve implementations enables malicious math that can drain pools

#26

StableSwap Convergence Failure

High

Newton's method may not converge in highly unbalanced pools, causing incorrect pricing

#27

Incorrect Storage Balance Updates in Meta-Pools

High

Stored balances not properly updated during meta-pool swaps cause accounting drift

#28

Incorrect Price Source in Production Oracles

Medium

Mock or hardcoded prices used instead of real market data in production environments

#29

Unprotected Critical Price Functions

Medium

Critical price-affecting functions lack access control, allowing unauthorized execution

#30

Multi-Block Price Manipulation Window

High

Price updates spanning multiple blocks create manipulation windows between state transitions

Need a Professional AMM Price & Oracle Audit?

DeFi protocols handle billions in TVL. Get your protocol audited by a team that understands AMM architectures and DeFi-specific attack vectors.

oog
zealynx

Subscribe to Our Newsletter

Stay updated with our latest security insights and blog posts

© 2024 Zealynx