在币圈资讯和安全分析中,“闪电贷攻击”本身并不是闪电贷的漏洞,而是攻击者利用闪电贷无需抵押、在同一交易内借还的特性,放大或组合目标协议中已有的漏洞,常见被利用的漏洞/薄弱点主要包括以下几类:

-
价格预言机操纵
- 依赖单一 DEX 现货池价格(如
getReserves())作为预言机。 - 攻击者用闪电贷巨额资金砸池子,瞬间扭曲价格,再在目标协议中按错误价格借贷、清算或铸造。
- 常见于借贷协议、合成资产、稳定币、衍生品协议。
- 依赖单一 DEX 现货池价格(如
-
现货价格/储备量直接作为定价依据
- 协议用池子当前余额计算份额价值、抵押率或兑换率。
- 攻击者通过闪电贷临时改变池子储备,影响计算。
-
重入漏洞
- 外部调用前未更新状态,攻击者在回调中再次进入协议。
- 闪电贷提供资金放大攻击收益,重入负责绕过检查。
-
奖励计算与状态更新顺序错误
- 先计算奖励/份额,后更新余额或总供应量。
- 攻击者在同一交易内反复存入、提取、领取奖励。
-
清算逻辑缺陷
- 清算阈值、折扣、奖励计算依赖可被操纵的价格。
- 攻击者用闪电贷自我清算或触发他人清算套利。
-
治理/投票闪电攻击
- 用闪电贷借入大量治理代币,在同一交易内投票通过恶意提案。
- 常见于快照式投票或未锁定投票权的治理合约。
-
代币机制漏洞
- 通缩/反射代币在转账时改变余额,导致协议记账错误。
- Rebasing 代币余额动态变化,被用于套利或操纵份额。
-
AMM 不变量/手续费计算错误
- 错误计算
k值、手续费或滑点,攻击者用大额闪电贷套取池中资产。
- 错误计算
-
跨协议组合风险
- 闪电贷 + 多个协议之间的价格差、状态不同步。
- 例如在 A 协议操纵价格,在 B 协议借贷,在 C 协议清算。
-
访问控制与权限校验缺失
- 关键函数未限制调用者或未校验闪电贷回调来源。
- 攻击者伪造回调或直接调用初始化函数。
-
闪电贷回调未验证
- 协议实现类似
onFlashLoan的回调时,未验证msg.sender是否为合法池子,或未校验发起者。
- 协议实现类似
-
舍入误差与精度问题
大额闪电贷放大舍入误差,攻击者反复操作获利。
-
初始化/代理合约漏洞
未初始化的代理合约被闪电贷资金配合攻击者部署并劫持。
-
时间戳/区块依赖
- 依赖
block.timestamp或区块数计算利息、奖励,被闪电贷在同一交易内操纵。
- 依赖
闪电贷攻击的“常见漏洞”本质是:价格可操纵、状态更新顺序错误、回调未验证、权限缺失、记账精度问题、治理无锁定,闪电贷只是把原本需要巨额资金的攻击变成无成本或低成本,并在一个交易内完成借、攻、还、获利,安全审计中通常重点检查预言机来源、重入防护、状态更新顺序、回调验证和治理投票锁定机制。