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

2026年1月27日,BNB Smart Chain上的PGNLZ项目遭受攻击,造成约10万美元损失。攻击者通过一系列精心设计的操作,利用项目通缩模型中的逻辑缺陷操控了代币价格。

攻击流程分析:

  • 攻击者首先通过闪电贷借出大量BTCB,并以此抵押借入3000万USDT。
  • 随后,在PancakeSwap中用大量USDT兑换PGNLZ,并将兑换来的绝大部分PGNLZ销毁,导致流动性池中PGNLZ数量急剧减少。
  • 此举使得PGNLZ价格被瞬间大幅拉高。
  • 关键漏洞在于:项目在处理交易手续费和销毁流动性池代币时,未对关键参数进行充分验证。攻击者触发了 _executeBurnFromLP 函数,该函数根据一个异常巨大的 pendingBurnFromLP 数值,几乎烧光了流动性池中剩余的PGNLZ。
  • 最终,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 的价格。建议项⽬⽅在设计经济模型和代码运⾏逻辑时要多⽅验证,合约上线前审计时尽量选择多个审计公司交叉审计。

分享至:

作者:零时科技

本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。

文章及观点也不构成投资意见

图片来源:零时科技如有侵权,请联系作者删除。

关注PANews官方账号,一起穿越牛熊