跳到正文
原文
OpenZeppelin 官方研究与审计·· 1 天前精选

OpenZeppelin 审计 Uniswap Universal Router 2.1 与 V4 Periphery

Uniswap Universal Router 2.1 and V4 Periphery Audit

AI 导读

OpenZeppelin 对 Uniswap universal-router 仓库 PR #457(commit 4be7e48)与 v4-periphery 仓库 PR #497(commit 76f8813)完成差异审计,共发现 2 个问题并全部解决,无严重、高危、中危问题,1 个低危问题和 1 条建议。低危问题为 ChainedActions 的 _acrossV4DepositV3 在调用本地 SpokePool 前,按用户传入的 spokePool 与 inputAmount 授权,可能把 inputToken 的额度授予任意地址;因 Universal Router 不打算持有用户资金,影响限于外部行为者错误,已在 PR #461 中将 Spoke Pool 地址设为不可变而修复。审计范围还包括新增的 ChainedActions.sol 与 RouteSigner.sol 合约、多步交易的逐跳滑点检查(可传空 maxHopSlippage 数组跳过),以及 RouteSigner 用 EIP-712 签名、ECDSA 恢复签名者和 nonce 防重放、以瞬态存储保存签名者信息;PR 未引入或变更特权角色。

推荐理由

逐跳滑点校验可传空数组跳过,价格向下取整因 amountIn 放大 1e18 而影响可忽略。

来源:OpenZeppelin 官方研究与审计 · openzeppelin.com