Hyperlend协议审计概要

  • Ackee
  • 发布于 2025-06-17 22:12
  • 阅读 29

本文是 Hyperlend 委托 Ackee Blockchain Security 做的安全审计报告,审计发现了44个问题,从Info到Critical级别不等。其中最严重的问题是C1,它会导致所有抵押代币被盗。该审计报告还提出了改进建议,包括及时了解Aave和Fraxlend代码库的最新修复,并保持最佳安全实践。

Hyperlend 是一个部署在 Hyperliquid 链上的借贷协议。该协议实现了为不同用例设计的风险隔离借贷池。该协议的基础设施包括用于协议池的跨链存款端点、支持通过闪电贷进行头寸管理的循环合约,以及用于资产上市功能的辅助合约。

Hyperlend 委托 Ackee Blockchain Security 对 Hyperlend 协议进行安全审查,总共投入了 46 个工程日,时间段为 2025 年 1 月 10 日至 2 月 7 日。

第二次修复审查于 2025 年 2 月 17 日至 2 月 24 日进行。

第三次审查于 3 月 12 日至 3 月 18 日进行。

方法论

我们首先深入研究了合约的逻辑。我们使用静态分析工具(包括 Wake)辅助我们的审查,并手动引导模糊测试来检查范围内的代码的基本功能。

在审查期间,我们特别关注:

  • 确保代币不会被盗或无意中锁定在合约中;
  • 检测代码中可能存在的重入漏洞;
  • 检查与第三方合约的集成是否正确且安全;
  • 常见问题,例如数据验证。

范围

本次审计针对以下代码仓库和提交:

  • hyperlend-core commit 425624;
  • hyperlend-isolated commit 37c678;
  • looping-contracts (private repository) commit 0fdde7;
  • core-config-engine commit 0339f1;
  • cross-chain-lending-deposits (private repository) commit 43b101.

修复审查针对以下代码仓库和提交:

  • hyperlend-core commit 625161;
  • hyperlend-isolated commit 0b90ce;
  • looping-contracts (private repository) commit cb6fac;
  • core-config-engine commit 4ff785;
  • cross-chain-lending-deposits (private repository) commit 38dc8a.

第三次审计针对 hyperlend-core-new 代码仓库,提交 0c2b14。范围包括与原始 Aave v3.2 代码库相比,src 目录中的所有更改。

发现

安全发现的分类由两个等级确定:影响可能性。这种二维分类有助于明确各个问题的严重程度。那些被评为中等严重程度,但可能只会被团队发现的问题,通常会因可能性因素而降低到警告信息严重程度。

我们的审查发现了 44 个发现,从信息到危急级别不等。最严重的发现 C1 对所有抵押代币从协议的隔离池中被盗构成了严重风险。尽管该发现超出了审查范围,但仍被报告,因为核心问题在于在原始 Fraxlend V3 代码库的上下文中不正确地使用了类似 Chainlink 的新价格提供者。如果不了解原始代码库的上下文,仅执行差异审查是无法检测到该问题的。

发现 C1、M1、M2、M7、M10、L2 是通过使用 Wake 测试框架手动引导的模糊测试发现的。发现 M5、M10、M11、M13 和 I10 是通过 Wake 静态分析发现的。

危急严重程度

C1:Chainlink 价格过时时未回滚

高严重程度

H1:可能的代币锁定

中等严重程度

M1:发出的 proposal ID 不正确

M2:缺少对桥接原生代币的支持

M3:通过不受限制的退款函数进行任意代币转账

M4:不正确的代币余额检查导致头寸关闭失败

M5:openPosition 函数中先除后乘

M6:缺少 payable 修饰符

M7:minAmountOut 计算过于严格

M8:代币符号格式不一致

M9:桥接启动时缺少代币验证

M10:未使用 SafeERC20

M11:原生 transfer 回滚导致 gas 不足

M12:WalletBalanceProvider 原生代币锁定

M13:缺少 Chainlink 价格源验证

低严重程度

L1:缺少 swap 截止时间保护

L2:Try/catch 仍可能回滚

L3:使用闪电贷关闭头寸的条件无法满足

L4:错误的消息

L5:缺少原生代币处理的 receive 函数

L6:cancelTransaction 中缺少对列队交易的验证

L7:同一交易可以多次列队

L8:可以绕过原生代币恢复

警告严重程度

W1:缺少检查以捕获下溢错误

W2:重复列出 proposal ID

W3:大小写不敏感的导入

W4:Hardhat 控制台导入

W5:StrategyManager 中未使用的状态变量

W6:缺少零地址验证

W7:缺少事件

W8:缺少 proposal 存在性验证

W9:CHAINLINK_NORMALIZATION 计算中潜在的负指数

W10:用于债务价值计算的代币余额不正确

信息严重程度

I1:内部函数名称中缺少下划线

I2:由于拼写错误导致变量命名不正确

I3:未使用的 Ownable 继承

I4:_reversePath 函数的可见性不一致

I5:当代币价格为零时,getUserAccountData 函数回滚

I6:getUserPairs 返回一个包含空头寸的数组

I7:SwapParams struct 中未使用的 swapPath 参数

I8:具有潜在数据截断风险的未使用函数

I9:不正确的文档

I10:变量可以是 immutable 的

信任模型

用户必须信任 Hyperlend 不会将资金锁定在协议中或操纵代币价格。必须信任 Stargate 网关才能在跨链存款期间正确地在中继消息。

结论

Ackee Blockchain Security 建议 Hyperlend:

  • 随时了解对 Aave 和 Fraxlend 代码库所做的最新修复;并且
  • 在列出新代币时保持最佳安全实践,确保价格预言机的质量,并监控协议池的健康状况。

Ackee Blockchain Security 的完整 Hyperlend 审计报告可在此处找到:https://github.com/hyperlendx/audits/blob/master/hyperlend/2025-03-24-ackee-audit-hyperlend.pdf .

  • 原文链接: ackee.xyz/blog/hyperlend...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Ackee
Ackee
Cybersecurity experts | We audit Ethereum and Solana | Creators of @WakeFramework , Solidity (Wake) & @TridentSolana | Educational partner of Solana Foundation