在过去一周(2026/02/23 - 2026/03/01),BlockSec 检测并分析了七起攻击事件,总计估计损失约为 1300 万美元。下表总结了这些事件,详细分析将在后续各节中提供。
| 日期 | 事件 | 类型 | 估计损失 |
|---|---|---|---|
| 2026/02/22 | LAXO 事件 | 代币设计缺陷 | ~$137K |
| 2026/02/22 | YieldBloxDAO 事件 | Oracle 配置错误 | ~$10M |
| 2026/02/23 | STO 事件 | 代币设计缺陷 | ~$16.1K |
| 2026/02/25 | HedgePay 事件 | 业务逻辑缺陷 | ~$15.7K |
| 2026/02/26 | Ploutos 事件 | Oracle 配置错误 | ~$390K |
| 2026/02/26 | FOOMCASH 事件 | 业务逻辑缺陷 | ~$2.26M |
| 2026/02/27 | 未知事件 | 输入验证不当 | ~$180K |
1. LAXO 事件
简要概述
2026 年 2 月 22 日,BNB Smart Chain 上的 ERC20 代币 LAXO 被利用,导致 LAXO-USDT 交易对损失约 137,320 美元。根本原因是代币转移到 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储备几乎不变,从而极大地推高了 USDT–LAXO 池中LAXO的价格。 -
攻击者根据操纵后的价格,将
burnAmount的LAXO兑换成约 487,500e18USDT。 -
攻击者偿还了闪贷,并将剩余的
USDT作为利润。
结论
此事件的根本原因在于 LAXO 缺陷的销毁机制,该机制允许攻击者通过价格操纵攻击耗尽池中的 USDT。因此,该事件造成了约 137.3K 美元的总损失。为缓解此类问题,项目方必须对销毁机制进行全面测试,以避免潜在的价格操纵攻击。
2. YieldBloxDAO 事件
简要概述
2026 年 2 月 22 日,YieldBlox DAO 在 Stellar 的 Blend V2 上运营的借贷池被利用,导致损失超过 1000 万美元 [1]。此事件是由于流动性池运营商(YieldBlox DAO)的配置错误,而不是智能合约的漏洞。
具体来说,攻击者操纵了 SDEX 上的 USTRY/USDC 市场。池配置的 Reflector Oracle 路径接受了被操纵的价格,该价格高估了 USTRY 作为抵押品,并使攻击者能够耗尽包括 USDC 和 XLM 在内的池资产。
背景
在 Stellar 区块链上,Blend V2 是一个允许用户创建隔离借贷池的流动性协议。这些池促进用户之间针对一组支持的资产进行借贷。具体而言,本事件中的受害者池允许用户使用 USTRY 作为抵押品来借入 XLM 和 USDC。此外,池创建者在创建时指定 Reflector Oracle [2] 作为 Oracle 提供者。Reflector Oracle 提供的 USTRY 价格基于 Stellar DEX(即 SDEX)上的 USTRY/USDC 市场每五分钟更新一次 [3]。
漏洞分析
根本原因是 SDEX 上流动性不足的 USTRY/USDC 市场的价格操纵,导致 Reflector Oracle 上的 USTRY 价格更新存在漏洞。具体而言,由于 USTRY/USDC 市场流动性极浅,攻击者能够消耗正常订单并下单异常订单,将 USTRY 价格推高 100 倍。然后,该高估的 USTRY 价格被传播到 Reflector Oracle,使攻击者能够通过抵押高估的 USTRY 来借走受害者池中的所有资产(即 XLM 和 USDC)。
攻击分析
1.(交易 1, 2)攻击者操纵了 SDEX 上的 USTRY 价格,将其从 1.06 美元 推高至约 107 美元。由于 SDEX 上的 USTRY/USDC 市场流动性极浅,攻击者消耗了所有正常订单,然后下单异常订单,大幅推高了市场价格。


2.(交易 3)Reflector Oracle 从 SDEX 拉取了被操纵的价格,并相应地更新了其价格馈送。

3.(交易 4, 5)攻击者通过抵押 12,881e7 USTRY 借入了 1,000,196e7 USDC。
4.(交易 6, 7)攻击者通过抵押 14,987,610e7 USTRY 借入了 6,124,927,810e7 XLM。

5.(交易 8, 9, 10)最后,攻击者将耗尽的资产桥接到多个链,包括 Base、BSC 和 Ethereum。
下表总结了主要的利用交易和相关地址。
结论
尽管 YieldBloxDAO 事件造成了重大损失,但根本问题并不复杂:抵押品估值依赖于易受操纵的价格。该事件提醒我们,借贷协议的价格依赖性必须经过仔细选择和监控。
参考
[2] https://reflector.network/
[3] USTRY/USDC Market on the SDEX
3. STO 事件
简要概述
2026 年 2 月 23 日,BNB Smart Chain 上的 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。为缓解此类问题,项目方必须在系统内实施适当的访问控制,并对销毁机制进行全面测试,以避免潜在的价格操纵攻击。
4. HedgePay 事件
简要概述
2026 年 2 月 25 日,BNB Smart Chain 上的 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 代币。为防止此类问题,项目方应进行适当的状态导向测试,以确保每个函数的状态不变量都得到正确维护。
5. Ploutos 事件
简要概述
2026 年 2 月 26 日,Ploutos 协议在以太坊上的一个池因 Oracle 配置错误而损失约 390,000 美元。具体来说,Oracle 被错误地设置为使用 BTC/USD Chainlink 价格馈送来获取 USDC。因此,攻击者利用此配置错误,仅以 8 USDC 的抵押品借入了 187 ETH。
漏洞分析
Ploutos 是 Aave v3.0.2 的一个分叉,部署在多个网络上。此事件是由借贷池(0xD060...F945D2)中的 Oracle 配置错误引起的。

在区块 24538896 中,USDC 的价格 Oracle 被错误配置,引用了 Chainlink BTC/USD 价格馈送,而不是 USDC/USD 馈送。在随后的区块(24538897)中,攻击者发现了配置错误并执行了利用。因此,攻击者通过抵押约 8.88 USDC,借入了约 187.3 ETH 作为利润。

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

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

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

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


攻击分析
以下分析基于交易 0x91f45260...41cfd784。
- 攻击者调用其恶意合约的
0x2d0cb456()函数。在此调用中,
a. 恶意合约使用空的 allSigners 和 signatures 输入调用 poolWithdraw() 函数,绕过了预期的签名验证逻辑。

b. 绕过签名验证逻辑后,受害者合约将 USDT 转移给了攻击者。

结论
此事件的根本原因是输入验证不当,导致损失约 180K 美元。该事件强调了执行基本的边界检查,例如对输入进行非空检查的重要性。
参考
[1] https://x.com/Phalcon_xyz/status/2027328894710505581
关于 BlockSec
BlockSec 是一家提供全栈区块链安全和加密合规服务的提供商。我们构建产品和服务,帮助客户在协议和平台的整个生命周期中执行代码审计(包括智能合约、区块链和钱包)、实时拦截攻击、分析事件、追踪非法资金,并满足 AML/CFT 义务。
BlockSec 在顶尖会议上发表了多篇区块链安全论文,报告了多起 DeFi 应用的零日攻击,阻止了多次黑客攻击并挽回了超过 2000 万美元的损失,并保障了数十亿美元的加密货币。
-
🔗 BlockSec 审计服务 : 提交请求



