11月5日,BNB Chain上的TENDRIL/USDT流动性池在PancakeSwap V2遭攻击,近乎全部USDT被抽走,净损失估约55.5万美元。漏洞指向TENDRIL代币的卖出钩子:自定义逻辑在交换过程中改动池储备,影响自动做市商(AMM)定价所依赖的资产比例。
卖出流程中的储备变更扭曲定价基础
已披露的攻击路径涉及PoolControl.sellToken调用及受控销毁操作。攻击者在外部转账完成前改变池所依赖的储备数据,使TENDRIL相对USDT的定价比例失真,进而抽走池内近乎全部USDT。
从这些机制看,问题在于代币自定义逻辑与池状态更新顺序的交互,并不等于PancakeSwap V2的定价公式本身失效;交易平台正常运行,也无法消除代币合约在交换期间改写池状态的风险。攻击过程中另有3万USDT被转入一个硬编码受益地址,但这笔转账不应直接视为整体损失额。
抽取额与净损失并非同一口径
损失估值存在差异:净损失约55.5万美元,另有研究将被抽取的USDT折算为约55万美元;监测服务TenArmorAlert早期估算约30.9万美元。总抽取额、攻击者所得和受害方净损失可能采用不同统计口径,不宜直接互换。ExVul与ScaleBit于11月5日发布安全警报,并披露相关合约、交易对及交易数据。
池内USDT近耗尽,卖出承接能力受限
对TENDRIL持有人及流动性提供者而言,直接影响是池内USDT储备近乎耗尽,可承接卖出的流动性随之受限。若储备未恢复,后续交易可用深度仍有限,代币显示的价格并不能单独说明实际成交能力。按已披露攻击路径,构建方尤其需要检查卖出钩子和销毁操作是否会在转账完成前改变池余额。







