2026 年 1 月 27 日,BNB Smart Chain 上 PGNLZ 项目遭攻击,攻击者借闪电贷、抵押借款后,利用 PancakeSwap 交易操控 Token 价格,因项目通缩模型未验证扣费及 Burn 逻辑,致约 10 万 USD 损失。建议项目方设计时多验证,合约上线前选多家审计公司

<!--StartFragment-->
2026年1⽉27⽇,我们监控到 BNB Smart Chain 上针对 PGNLZ 项⽬的攻击事件:https\://bscscan.com/tx/0xa7488ff4d6a85bf19994748837713c710650378383530ae709aec628023cd7cc
经过详细分析,攻击者在 2026 年 1 ⽉ 27 ⽇,持续对 PGNLZ 项⽬发起攻击,*攻击共造成约 100k USD 的损失。
<!--EndFragment-->
<!--StartFragment-->
攻击者⾸先从 Moolah Protocol 利⽤闪电贷贷了 1,059 BTCB,
<!--EndFragment-->
<!--StartFragment-->
随后,在 Venus Protocol 中抵押了 1,059 BTCB ,从⽽ borrow 了 30,000,000 USDT。
<!--EndFragment-->
<!--StartFragment-->
接着,攻击者在 PancakeSwap 调⽤函数 swapTokensForExactTokens ,利⽤ 23,337,952 USDT 兑换了 982,506 PGNLZ ,但是却把这些 PGNLZ 销毁了(兑换给了 0xdead )。
<!--EndFragment-->

<!--StartFragment-->
兑换前, 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 。
<!--EndFragment-->

<!--StartFragment-->
我们在看 _executeBurnFromLP 是如何实现的,
<!--EndFragment-->

<!--StartFragment-->
可以看到, _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 倍。
<!--EndFragment-->

<!--StartFragment-->
最后,攻击者将 LP Pool 掏空,还清了闪电贷后,获利 100 k USDT 。
本次漏洞的成因是通缩的经济模型,在扣费或者 Burn LP Pool 时没有进⾏验证。导致攻击者利⽤通缩特性操控了 Token 的价格。建议项⽬⽅在设计经济模型和代码运⾏逻辑时要多⽅验证,合约上线前审计时尽量选择多个审计公司交叉审计。
<!--EndFragment-->
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!