背景介绍 2026年1⽉27⽇,我们监控到BNB Smart Chain上针对PGNLZ 项⽬的攻击事件: https://bscscan.com/tx/0xa7488ff4d6a…背景介绍 2026年1⽉27⽇,我们监控到BNB Smart Chain上针对PGNLZ 项⽬的攻击事件: https://bscscan.com/tx/0xa7488ff4d6a…

一次精心设计的“自爆”:PGNLZ攻击事件分析

背景介绍

2026年1⽉27⽇,我们监控到BNB Smart Chain上针对PGNLZ 项⽬的攻击事件:

https://bscscan.com/tx/0xa7488ff4d6a85bf19994748837713c710650378383530ae709aec628023cd7cc

经过详细分析,攻击者在 2026 年 1 ⽉ 27 ⽇,持续对PGNLZ项⽬发起攻击,攻击共造成约100k USD的损失。

攻击及事件分析

攻击者⾸先从Moolah Protocol利⽤闪电贷贷了1,059 BTCB,

随后,在 Venus Protocol 中抵押了 1,059 BTCB ,从⽽ borrow 了 30,000,000 USDT。

接着,攻击者在 PancakeSwap 调⽤函数 swapTokensForExactTokens ,利⽤ 23,337,952 USDT 兑换了 982,506 PGNLZ ,但是却把这些 PGNLZ 销毁了(兑换给了 0xdead )。

兑换前,PancakeSwap Pool中有100,901 USDT和982,506 PGNLZ,此时PGNLZ的价格为1 PGNLZ = 0.1 USDT。兑换完成后,PancakeSwap Pool剩余23,438,853 USDT和4,240 PGNLZ,此时,PGNLZ的价格为1 PGNLZ = 5,528 USDT。

随后,攻击者调⽤函数swapExactTokensForTokensSupportingFeeOnTransferTokens,这个函数主要是⽀持Fee-On TransferToken也就是买卖带⼿续费的Token。PGNLZ通过_update来处理交易的fee,具体的调⽤链为:transferFrom -> _spendAllowance -> _transfer -> _update

因为本次是 sell ,所以会调⽤到 _handleSellTax 。

我们在看 _executeBurnFromLP 是如何实现的,

可以看到,_executeBurnFromLP会使⽤_update来burn掉pendingBurnFromLP数量的PGNLZ。在前⼀个区块查询到pendingBurnFromLP为4,240,113,074,578,781,194,669。

经过 burn 之后,LP Pool 中的只剩下的 0.00000001 PGNLZ ,此时 1 PGNLZ = 234,385,300,000,000 USDT ,拉升了 40 Billion 倍。

最后,攻击者将LP Pool掏空,还清了闪电贷后,获利100 k USDT。

总结

本次漏洞的成因是通缩的经济模型,在扣费或者 Burn LP Pool 时没有进⾏验证。导致攻击者利⽤通缩特性操控了 Token 的价格。建议项⽬⽅在设计经济模型和代码运⾏逻辑时要多⽅验证,合约上线前审计时尽量选择多个审计公司交叉审计。

免责声明: 本网站转载的文章均来源于公开平台,仅供参考。这些文章不代表 MEXC 的观点或意见。所有版权归原作者所有。如果您认为任何转载文章侵犯了第三方权利,请联系 [email protected] 以便将其删除。MEXC 不对转载文章的及时性、准确性或完整性作出任何陈述或保证,并且不对基于此类内容所采取的任何行动或决定承担责任。转载材料仅供参考,不构成任何商业、金融、法律和/或税务决策的建议、认可或依据。