在过去一周(2026年2月23日至2026年3月1日),BlockSec 检测并分析了七起攻击事件,总估计损失约为 1300 万美元。下表总结了这些事件,并在接下来的子章节中提供了每起事件的详细分析。
| 日期 | 事件 | 类型 | 估计损失 |
|---|---|---|---|
| 2026/02/22 | LAXO 事件 | 代币设计缺陷 | ~$137K |
| 2026/02/22 | YieldBloxDAO 事件 | 预言机配置错误 | ~$10M |
| 2026/02/23 | STO 事件 | 代币设计缺陷 | ~$16.1K |
| 2026/02/25 | HedgePay 事件 | 业务逻辑缺陷 | ~$15.7K |
| 2026/02/26 | Ploutos 事件 | 预言机配置错误 | ~$390K |
| 2026/02/26 | FOOMCASH 事件 | 业务逻辑缺陷 | ~$2.26M |
| 2026/02/27 | 未知事件 | 输入验证不当 | ~$180K |
LAXO 事件
简要概述
2026 年 2 月 22 日,BNB 智能链上的 ERC20 代币 LAXO 被利用,导致 LAXO-USDT 交易对损失约 137,320 美元。根本原因在于一个有缺陷的销毁机制,当 LAXO 直接传输到 PancakeSwap 交易对时会被激活。由于路由器已加入白名单,不会触发 transfer() 中的销毁逻辑,攻击者通过将 LAXO 发送到交易对,然后调用交易对的低级 swap() 函数,该函数销毁了交易对代币并调用 sync(),从而使价格膨胀。随后攻击者将代币兑换回 USDT 以获利。
背景
LAXO 代币实现了一个销毁机制。当转账接收方是 USDT-LAXO PancakeSwap 交易对地址时,代币会将其视为卖出:它会销毁交易对中相应数量的代币,然后调用 sync() 来更新交易对的储备。
此外,LAXO 代币实现了一个白名单 (_isExcludedFromFee),用于豁免某些地址(例如,交易路由器)免受销毁机制和费用的影响。

漏洞分析
事件的根本原因在于 LAXO 代币中存在一个有缺陷的销毁机制。具体来说,直接将 LAXO 传输到交易对会触发销毁,从交易对中移除 LAXO 并导致其价格上涨。因此,攻击者可以利用这一点通过价格操纵攻击实现获利。
攻击分析
攻击分析基于交易 0xd58f3ef6...d98ac7d3。
-
攻击者从 PancakeSwap V3 闪电贷了 350,000e18
USDT。 -
攻击者通过 PancakeSwap Router 将
USDT兑换成LAXO。为了绕过交易限制 (buyEnabled = false) 和费用逻辑,攻击者创建了一个 BNB-LAXO V2 交易对,并通过该交易对进行交易。
-
攻击者将所有持有的
LAXO直接传输到 USDT-LAXO 交易对。这减少了池中的LAXO储备,而USDT储备几乎保持不变,从而极大地提高了 LAXO 在 USDT-LAXO 交易对中的价格。 -
攻击者根据操纵后的价格,将
burnAmount的LAXO兑换成约 487,500e18USDT。 -
攻击者偿还了闪电贷,并保留剩余的
USDT作为利润。
结论
此次事件的根本原因在于 LAXO 存在缺陷的销毁机制,该机制允许攻击者通过价格操纵攻击从池中榨取 USDT。因此,此次事件共造成约 13.73 万美元的损失。为了缓解此类问题,项目方必须对销毁机制进行全面的测试,以避免潜在的价格操纵攻击。
YieldBloxDAO 事件
简要概述
2026 年 2 月 22 日,YieldBlox DAO 在 Stellar 的 Blend V2 上运营的一个借贷池被利用,导致损失超过 1000 万美元 [1]。此次事件是由于池操作员(YieldBlox DAO)配置错误,而非智能合约中的漏洞。
具体来说,攻击者操纵了 SDEX 上的 USTRY/USDC 市场。池配置的 Reflector 预言机路径接受了操纵后的价格,导致 USTRY 被高估作为抵押品,使攻击者能够提取包括 USDC 和 XLM 在内的池资产。
背景
在 Stellar 区块链上,Blend V2 是一个流动性协议,允许用户创建隔离的借贷池。这些池促进用户在一组支持的资产之间进行借贷。特别是,此次事件中的受害者池允许用户使用 USTRY 作为抵押品来借入 XLM 和 USDC。此外,池创建者在创建时指定 Reflector 预言机 [2] 作为预言机提供商。Reflector 预言机提供的 USTRY 价格基于 Stellar DEX(即 SDEX)上的 USTRY/USDC 市场每五分钟更新一次 [3]。
漏洞分析
根本原因在于 SDEX 上流动性不足的 USTRY/USDC 市场的价格操纵,导致 Reflector 预言机上的 USTRY 价格更新存在漏洞。具体来说,由于 USTRY/USDC 市场流动性极低,攻击者能够通过消耗正常订单并下单异常订单,将 USTRY 价格推高 100 倍。然后,这个被抬高的 USTRY 价格被传播到 Reflector 预言机,使攻击者能够通过抵押高估的 USTRY 来借出受害者池中的所有资产(即 XLM 和 USDC)。
攻击分析
- (交易 1, 2) 攻击者操纵了 SDEX 上的 USTRY 价格,将其从 1.06 美元推高至约 107 美元。由于 SDEX 上的 USTRY/USDC 市场流动性极低,攻击者消耗了所有正常订单,然后下单异常订单,大幅推高了市场价格。

- (交易 3) Reflector 预言机从 SDEX 获取操纵后的价格,并相应地更新其价格源。

- (交易 4, 5) 攻击者通过抵押 12,881e7 USTRY 借入了 1,000,196e7 USDC。

- (交易 6, 7) 攻击者通过抵押 14,987,610e7 USTRY 借入了 6,124,927,810e7 XLM。

- (交易 8, 9, 10) 最后,攻击者将提取的资产桥接到多个链,包括 Base、BSC 和 Ethereum。
下表总结了关键的利用交易和相关的参与地址。
结论
尽管 YieldBloxDAO 事件造成了重大损失,但根本问题并不复杂:抵押品估值依赖于易受操纵的价格。此事件提醒我们,借贷协议的价格依赖性必须经过仔细选择和监控。
参考资料
[2] https://reflector.network/
STO 事件
简要概述
2026 年 2 月 23 日,BNB 智能链上 PancakeSwap 的 STO-WBNB 池被耗尽,导致损失约 16.1K 美元。根本原因在于 STO 代币存在缺陷的销毁机制。具体来说,当用户在池中出售 STO 代币时,销毁机制被触发,销毁了池中的 STO 代币,从而推高了代币的价格。因此,攻击者利用此漏洞从池中提取了 WBNB 代币。
背景
STO 代币引入了一个针对 PancakeSwap V2 池的销毁机制。该机制仅在 STO 代币的卖出功能启用(即 sellEnabled == true)且 pendingBurnFromSell > 0 时触发。当用户出售 STO 代币时,该机制会销毁池中的 STO 代币。具体来说,在销毁过程中,将销毁上一次交易中出售的 STO 代币的 94%。
漏洞分析
事件的根本原因在于 STO 代币中存在的有缺陷的销毁机制。具体来说,当用户出售 STO 代币时,销毁机制会从池中移除一定数量的 STO 代币,同时调用交易对合约的 sync() 函数来更新储备。这个销毁机制会推高 STO 代币在池中的价格。因此,攻击者可以通过进行价格操纵攻击从该机制中获利。

攻击分析
以下分析基于交易 0x8ba17bea...5a54020c。
-
攻击者通过闪电贷借入了
360,894e18 WBNB。 -
攻击者调用
initializeLiquidity()函数,以启用STO代币的买卖功能。
-
攻击者用
360,894e18 WBNB兑换了7,848,832e18 STO。 -
攻击者调用
transfer()函数,触发销毁机制以操纵交易对的储备(即提高了STO代币的价格),同时将下一次交易要销毁的STO代币数量设置为173,391e18。
-
攻击者调用
swap()函数,用STO兑换WBNB。此步骤使攻击者能够根据操纵后的价格获利。 -
攻击者重复步骤 4 和 5,耗尽了池中的
WBNB。 -
攻击者偿还了闪电贷,并实现了
26e18 WBNB的利润。
结论
此次事件的根本原因在于 STO 存在缺陷的销毁机制,该机制允许攻击者从池中提取 WBNB。为了缓解此类问题,项目方必须在系统中实施适当的访问控制,并对销毁机制进行全面测试,以避免潜在的价格操纵攻击。
HedgePay 事件
简要概述
2026 年 2 月 25 日,BNB 智能链上的 HedgePay 协议被利用,导致损失约 15.7K 美元。根本原因在于 HedgePay 协议质押合约中存在的业务逻辑缺陷。具体来说,有漏洞的质押合约(即 0xBe189fe9f84cA531CD979630E1f14757b88dD80d)的 forceExit() 函数允许用户提取其已质押的资产,而无需更新其已质押的余额。因此,攻击者能够反复调用 forceExit() 函数来耗尽合约中的 HPAY 代币。
背景
HedgePay 协议是一个质押协议,允许用户通过质押 HPAY 代币来赚取奖励。forceExit() 函数允许用户提取其已质押的资产。
漏洞分析
事件的根本原因在于 forceExit() 函数中存在的业务逻辑缺陷。具体来说,当用户通过 stake() 函数质押 HPAY 代币时,其已质押的数量(即 _balances[msg.sender])会相应更新。然而,当用户通过 forceExit() 函数提取其已质押的 HPAY 代币时,合约未能更新 _balances[msg.sender]。因此,攻击者可以通过反复调用 forceExit() 函数来提取质押合约中的 HPAY 代币。

攻击分析
以下分析基于交易 0x5f2ea6cb...46ed137f。
-
攻击者通过闪电贷借入了
1,247,859e18 HPAY。在闪电贷回调函数中:a. 攻击者通过
stake()函数质押了1,197,944e18 HPAY。b. 攻击者反复调用
forceExit()函数来耗尽合约的 HPAY 代币。
-
攻击者偿还了闪电贷,并将
57,389,615e18 HPAY兑换成26e18 WBNB(即获利26e18 WBNB)。
结论
此次事件的根本原因在于 forceExit() 函数未更新用户的 _balances[msg.sender],导致攻击者能够耗尽质押合约中的 HPAY 代币。为了防止此类问题,项目方应进行适当的状态导向测试,以确保在每个函数中都能正确维护状态不变量。
Ploutos 事件
简要概述
2026 年 2 月 26 日,以太坊上的 Ploutos 协议池因预言机配置错误导致损失约 390,000 美元。具体来说,预言机被错误地配置为使用 BTC/USD Chainlink 价格源来获取 USDC。因此,攻击者利用此配置错误,仅抵押 8 USDC 就借出了 187 ETH。
漏洞分析
Ploutos 是 Aave v3.0.2 的一个分支,部署在多个网络上。此次事件是由于借贷池 (0xD060...F945D2) 中预言机配置错误造成的。
在区块 24538896 中,USDC 的价格预言机被错误配置为引用 Chainlink BTC/USD 价格源,而不是 USDC/USD 源。在随后的区块(24538897)中,攻击者发现了此配置错误并执行了利用。结果,攻击者通过抵押约 8.88 USDC 借出了约 187.3 ETH 作为利润。

攻击分析
-
攻击者监控了 Ploutos 协议的预言机配置操作,在交易 0xcfedf6...bd193ab6 中,
USDC的预言机源被错误地设置为 Chainlink BTC/USDC 价格源。 -
攻击者立即发送了一笔交易 (0xa17dc37e...705f8474),该交易允许攻击者由于预言机配置错误,仅抵押约 8.8
USDC就借出了约 187.3ETH。 -
攻击者支付了约 5.6
ETH的构建者贿赂,净获利约 181.7ETH。
结论
此次事件的根本原因在于预言机配置错误,导致损失约 390,000 美元。这提醒我们,像预言机配置这样的敏感操作应通过多签钱包或时间锁来保护,以避免潜在的损失。
参考资料
[1] https://x.com/Phalcon_xyz/status/2026943448734114011
FOOMCASH 事件
简要概述
2026 年 2 月 26 日,FOOMCASH 协议因存在漏洞的 Groth16 证明验证 [1] 被利用,导致总损失超过 226 万美元。
背景
FOOMCASH 协议是一个部署在 Base 和以太坊上的彩票协议,它使用 Groth16 证明进行提现验证。在 FoomLottery 合约中,collect() 函数通过调用 WithdrawG16Verifier.verifyProof() 来验证提供的证明(即 _pA、_pB 和 _pC)。具体来说,验证是基于 WithdrawG16Verifier 合约中的可信设置(即 gamma 和 delta)进行的。一旦证明被验证为有效,collect() 函数将根据用户的输入(例如 _recipient 和 _rewardbits)继续转移资产(即 FOOM 代币)。

漏洞分析
事件的根本原因在于有漏洞的 Groth16 设置。具体来说,在 WithdrawG16Verifier 合约中,变量 gamma () 和 delta () 共享相同的值(即 ),这使得攻击者能够伪造具有任意输入的有效证明。因此,攻击者绕过了 WithdrawG16Verifier 合约中的 Groth16 证明验证,并使用恶意输入耗尽了 FoomLottery 合约中的所有资产。

攻击分析
攻击分析基于交易 0ce204482...4e275e48。
攻击者创建了一个恶意合约来构建有效的证明和恶意输入。在恶意合约的回退逻辑中:

-
它构建了一个有效的证明。
-
它调用
FoomLottery合约的collect()函数,并传入有效的证明和恶意输入(例如_recipient和_rewardbits)。- 在调用
collect()函数时,证明验证(即WithdrawG16Verifier.verifyProof())被绕过,并且资产(即FOOM代币)被转移给攻击者。
- 在调用
-
它重复步骤 1-2 共 30 次,耗尽了总计
19,695,576,757,802e18 FOOM代币。
结论
此次事件的根本原因在于有漏洞的 Groth16 验证设置,导致损失约 226 万美元。这强调了复杂的加密设置在部署前必须经过彻底的审查和审计。
参考资料
[1] https://x.com/Phalcon_xyz/status/2026941738141778394
未知事件
简要概述
2026 年 2 月 27 日,BNB 智能链上的一个未知合约被利用 [1],导致损失约 180,000 美元。此次事件的根本原因在于输入验证不当。具体来说,受害者合约的 _verifySignatures() 函数未能执行空列表检查,导致攻击者在未提供签名和签名者的情况下绕过了签名验证。因此,攻击者利用此漏洞耗尽了受害者合约中的所有 USDT 代币。
漏洞分析
此次事件的根本原因在于签名验证流程中输入验证不当。具体来说,_verifySignatures() 函数仅检查 allSigners.length == signatures.length,而不要求任一数组非空。因此,当两个数组都为空时,攻击者可以绕过签名验证并提取资产。

攻击分析
以下分析基于交易 0x91f45260...41cfd784。
-
攻击者调用其恶意合约的
0x2d0cb456()函数。在调用中,a. 恶意合约调用
poolWithdraw()函数,并传入空的allSigners和signatures输入,绕过了预期的签名验证逻辑。
b. 在绕过签名验证逻辑后,受害者合约将 USDT转账给了攻击者。
结论
此次事件的根本原因在于输入验证不当,导致损失约 180,000 美元。此次事件凸显了执行基本的边界检查(例如,输入非空检查)的重要性。
参考资料
[1] https://x.com/Phalcon_xyz/status/2027328894710505581


