Notional Exponent 审计
Notional Exponent审计报告
迁移pool池的功能,把迁移数设置为了不可变量
当 Convex
的某个奖励池被废弃(例如旧的 pid
失效),并为同一个LP token
分配了新的 pid
时,升级管理员可以执行“迁移”操作,将流动性从旧 pid
提取,再存入新的 pid
。
但是,策略合约中记录的 pid
是不可变(immutable
)的。这意味着策略合约本身仍会引用旧的 pid
和旧的奖励池(即旧的 yieldToken
),即使底层资产已经迁移到了新的奖励池。结果是:策略的内部状态与 Convex
实际奖励池状态不一致,功能失效。
迁移资金时,没有注意还有其他的资金在另外一个地方
这个要根据分析迁移时的资金转移来看,必须得深入每一个调用链的关系.分析资金的走向
AbstractRewardManager::migrateRewardPool
函数允许管理员将当前奖励池迁移至一个新的奖励池。
在迁移过程中,合约会尝试先领取旧奖励池的奖励,然后再将资产转入新奖励池。但在调用链深入分析后发现,这个流程 忽略了 Convex
中“奖励暂存合约(stash
)”中的奖励领取机制,导致部分奖励在迁移中丢失。
错误的计算,通过一种资产计算另一种资产
计算逻辑:
PT → 可换 SY(看得见)
SY ≠ Yield Token(预言机误认为是)
所以:PT价格 = SY数量 × YieldToken价格 → ❌ 高估
→ 抵押被高估 → 超额借款 → 爆仓风险上升
没有在支持的链上实现特定的功能
该项目在以太坊主网上实现了撤回资金的功能,但是并没有在侧链上实现,导致功能的受损
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.