Tendril 漏洞在卖出钩子缺陷后耗尽约 $555K 的 USDT

该漏洞利用事件凸显了在DeFi中进行严格审计和安全编码实践的关键必要性,以防止自定义代币逻辑中的漏洞。

图片:crazy motions / Pexels
攻击者利用TENDRIL代币卖出逻辑中的漏洞,在BNB链上从其PancakeSwap V2池中提取了几乎全部USDT。
2026年11月5日 星期四 · 02:31 EST · 阅读时长3分钟
在加密货币领域
分享
BNB链上的一个小型代币刚刚在自定义代码上吸取了一个昂贵的教训。TENDRIL卖出钩子中的一个漏洞让攻击者提取了该代币几乎全部USDT储备,造成约$555,000的净损失。
该漏洞于2026年11月5日袭击了PancakeSwap V2上的TENDRIL/USDT流动性池。
TENDRIL 攻击是如何运作的
薄弱点在于该代币的卖出逻辑。BNB Chain上的许多代币都会添加自定义行为,在有人卖出时触发,例如手续费、销毁或储备调整。这段额外代码通常被称为钩子。
安全研究人员将此次攻击追溯到包括PoolControl.sellToken在内的函数调用,并伴随一次受控销毁操作。根据披露信息,攻击者利用该销毁操作在外部转账执行完成之前操纵了代币储备。
该合约允许攻击者在出售仍在进行时更改池子所依赖的定价数值。一旦这些储备被扭曲,池子就会认为TENDRIL相对于USDT的价值远高于其应有水平。
像PancakeSwap这样的自动做市商根据池中代币的比例来为资产定价。人为地缩减一侧,另一侧在提取时就会突然显得便宜。攻击者利用这一缺口提取了几乎全部的USDT余额。
链上数据中有一个细节格外引人注目。在此次漏洞利用过程中,攻击者将30k USDT发送到了一个硬编码的受益地址。
这些数字并不完全一致
损失估计因统计者不同而有所差异。主要数字是净损失约为$555,000,研究结果则称总共流失了约$550,000的USDT。
早期警报描绘的损失规模较小。监控服务TenArmorAlert最初估计损失约为$309,000。
这一差距反映了计算净损失与攻击者获利时所采用的不同方法。资金池被抽走的总余额、攻击者扣除成本后的所得,以及受害者的净损失,都可能从同一批交易中得出不同的总额。
ExVul和ScaleBit的安全团队于2026年11月5日就此次攻击发布了公开警报。他们的披露内容包括存在漏洞的代币合约、受影响的交易对地址以及相关交易数据,为其他研究人员提供了可循的线索。
背景:自定义代币,自定义风险
TENDRIL在此次事件之前鲜为人知。这种模式在BNB链上屡见不鲜。开发者将税收、销毁或反射逻辑附加到标准代币模板上,以打造独特的代币经济学叙事。每一处修改都会增加新的代码路径,这些路径与AMM的交互方式超出了原始模板的预期。
当这些路径允许用户在交易过程中改变池储备时,AMM的定价数学就不再保护流动性提供者。
CertiK继续在其Web3安全仪表板中追踪此类事件,该仪表板按季度监测损失、攻击向量和链级风险。此次TENDRIL资金流失事件现已计入2026年下半年的持续统计中。
这对DeFi用户和构建者意味着什么
对于TENDRIL持有者而言,眼下的问题是流动性。由于几乎所有USDT已被提取,池子另一端可用于吸收卖单的资金已所剩无几。
对于更广泛的流动性提供者而言,一个经过充分审计的交易平台也无法保护资金池免受那种会改写自身储备的代币影响。
开发者面临更明确的启示。涉及池余额的卖出钩子和销毁函数需要严格的顺序安排,确保状态变更仅在转账完成后发生。TENDRIL漏洞似乎正是源于这种顺序安排失误,而这正是独立审计旨在发现的问题类型。
披露:本文由John Chen编辑。如需了解我们如何创建和审核内容,请参阅我们的编辑政策。


